Я открываю документ Excel, за которым следует соответствующий лист, а затем перебираю все свойства в классе.
Если имя свойства совпадает с именем диапазона, например, ячейка с именем FacilityAmount в электронной таблице, а свойство с именем FacilityAmount Я хочу получить значение из указанного диапазона.
Я знаю, что имя диапазона найдено, но valueArray всегда равно нулю или 0. Значение внутри электронной таблицы равно 100 000.
foreach (PropertyInfo property in properties)
{
try
{
string propertyName = property.Name;
Microsoft.Office.Interop.Excel.Range rng = worksheet.get_Range(propertyName, Type.Missing);
object valueArray = rng.get_Value(XlRangeValueDataType.xlRangeValueDefault);
//Do something with valueArray but it's returning null?
}
catch (Exception e)
{
Console.WriteLine(e);
//We have to leave this catch blank as some cells don't have range names (intentional).
//We could put a warning that the range name did not exist but it's too detrimental to the user experience
}
}
Что мне здесь не хватает?
Редактирование / обновление: я только что проверил это, написав быстрое приложение WinForms (C #) и используя тот же код. Это возвращает значение просто отлично. Может ли это быть ошибкой в Interop.Excel на .Net Core?