Чтение данных Excel из выпадающего в массив объектов C # - PullRequest
1 голос
/ 06 октября 2009

Изнутри C # Я пытаюсь прочитать данные из листа Excel в объект C #.

Все отлично работает, кроме одной маленькой детали, данных Excel из выпадающих списков.

Каким-то образом результат в массиве равен нулю для каждой соответствующей записи в раскрывающемся списке Excel.

Мой код ниже:

 var range = sheet.get_Range("A1", "D3");

 var valuearray = (Object[,])range.get_Value(XlRangeValueDataType.xlRangeValueDefault);

До тех пор, пока данные ячейки не берутся из выпадающего списка Excel, ряд значений получают правильные значения. Но как только данные поступают из выпадающего списка, запись в массиве значений становится пустой.

Ценю любой вклад, Данн: -)

1 Ответ

1 голос
/ 06 октября 2009

Проблема, с которой вы сталкиваетесь, возникает из-за того, что данные для раскрывающегося списка фактически не хранятся в самом объекте Range. Если вы посмотрите на свой объект WorkSheet, вы заметите метод DropDowns. Это возвращает объект DropDowns, который можно затем вызвать Item для получения отдельного DropDown. Оттуда вы можете работать со списком в самом DropDown как:

(assuming: using Excel = Microsoft.Office.Interop.Excel)
Excel.DropDowns allDropDowns = YourWorkSheet.DropDowns(Type.Missing);
Excel.DropDown oneDropdown = allDropDowns.Item(YourIndex);

У меня не было изменений для извлечения элементов из DropDown (только добавление большего с помощью AddItem), однако методы Get List и Get Selected кажутся хорошим началом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...