2009-10-06 51 views
1

從C#中我試圖從一個Excel工作表讀取數據到一個C#對象。讀取Excel數據從下拉到C#對象數組

一切工作正常,除了一個小的細節,從下拉列表中的Excel數據。

不知何故,對於每個相應的Excel下拉列表條目,數組中的結果爲空。

我的代碼,以便下面遠:

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

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

只要單元格數據不是從Excel始發下拉列表valuearray得到正確的價值觀。但只要數據來自下拉列表,valuearray條目就爲空。

欣賞任何輸入,丹娜:-)

回答

1

你看到的問題時,因爲下拉心不是數據實際存儲在範圍對象本身。如果你看看你的WorkSheet對象,你會注意到一個DropDowns方法。這將返回一個DropDowns對象,然後您可以調用Item以獲取單獨的DropDown。從那裏,你可以對內部下拉列表工作本身喜歡:

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

我已經沒有改變鑽進去獲取項目從下拉列表中(僅增加更多與的AddItem),但是獲取列表和獲取選定的方法似乎是一個很好的開始。

+0

賓果遊戲!!!非常感謝! – Daniel 2009-10-06 13:53:45

+0

@Wolfwyrd我試過使用這個,但收到一個異常:「mscorlib.dll中發生類型'System.Runtime.InteropServices.COMException'的未處理的異常 附加信息:DropDowns類的項目方法失敗」您有任何想法爲什麼發生這種情況? – Alex 2016-02-26 09:13:37