在Excel中,我可以將驗證規則添加到一系列單元格,並將接受的輸入限制爲顯示在下拉列表中的值列表。這是使用數據驗證工具來完成,如下圖所示:使用OpenXML將下拉驗證添加到整個Excel列中
我有一個生成Excel工作表中的一些C#代碼,我想這種相同的驗證增加了一列。
使用Microsoft.Office.Interop.Excel
,我能對這種下拉驗證添加到整列:
string flatList = "FirstChoice,SecondChoice,ThirdChoice";
//select the entire first row as the range
Microsoft.Office.Interop.Excel.Range range = worksheet.get_Range("A1").EntireColumn;
//remove any previously existing validation
range.Validation.Delete();
//add new validation
range.Validation.Add(
Microsoft.Office.Interop.Excel.XlDVType.xlValidateList,
Microsoft.Office.Interop.Excel.XlDVAlertStyle.xlValidAlertInformation,
Microsoft.Office.Interop.Excel.XlFormatConditionOperator.xlBetween,
flatList,
Type.Missing);
range.Validation.IgnoreBlank = true;
range.Validation.InCellDropdown = true;
的問題是,我不能保證我的用戶已經安裝了Microsoft Office。因此,我想改爲使用DocumentFormat.OpenXML
。
是否可以使用OpenXML添加相同類型的下拉驗證?
我已經看到一些使用DataValidation
的帖子,但還沒有能夠找到如何讓它工作,如果這將解決我的問題。
這不適用於引用整個列的常規方法嗎?例如 - 答:A而不是A1:A1048576 – RogerN
@RogerN是的,這是行不通的。謝謝!更新我的解決方案 –