2013-03-21 128 views
0

再次出現Excel問題。 我的客戶向我發送一個包含下拉列表(Combobox)的Excel文件,我需要複製該組合框或使用裏面的信息構建一個新文件。 對於excel,我發現dropdownlist被命名爲數據驗證(我已經知道了,但對他無能爲力)。將Excel中的DropDown從WorkBook複製到新的工作簿

我有Gembox DLL和NativeExcel DLL,並沒有找到任何解決方案。

隨着GemBox我已經得到這樣的:

ExcelFile ef = ExcelFile.Load("Modelo_AA.xlsx"); 
ExcelWorksheet ws = ef.Worksheets[0]; 
ExcelFile efnovo = new ExcelFile(); 
ExcelWorksheet wsnovo = efnovo.Worksheets.Add("Hello"); 
DataValidationCollection dvc = ws.DataValidations; 
DataValidation dv = dvc[0]; 
bool dd = dv.InCellDropdown; //here i get true 

感謝 安德魯

編輯:我suposed的datavalitation與下拉列表有關的!

編輯2:主要問題是將工作簿的下拉列表複製到其他!

+0

你想從源工作簿中進行數據驗證? – shahkalpesh 2013-03-21 16:14:20

+0

我認爲datavalitation與dropdownliat相關聯。對!? – iamandre 2013-03-21 16:29:00

+0

數據驗證的一種類型是從列表中選擇一個項目。即一個單元格可以只包含列表中的值,因此在下拉菜單的幫助下顯示。 – shahkalpesh 2013-03-21 16:34:38

回答

0

首先我想說的是,在你的情況下,DataValidation與dropdownlist是關聯的,因爲它是一個List類型(請參閱dv.Type屬性)。

同樣爲了將DataValidation複製到另一個excel文件,它將依賴於DataValidation源,如shahkalpesh的註釋中所述,它們可以是硬編碼的,或者它們可以來自單元格範圍。您可以通過獲取dv.Formula1對象來檢查DataValidation的來源。 例如,如果它是硬編碼,則一級方程式將是那些列表項的數組,你可以添加資料驗證到另一個ExcelFile:

wsnovo.DataValidations.Add(dv); 

但是,如果這資料驗證在一級方程式單元格區域,然後你將不得不在新的ExcelFile中複製該單元格區域,或者您可以嘗試讀取該單元格區域中單元格的值,並用硬編碼的項目列表替換Formula1。

相關問題