使用ClosedXML创build下拉列表

我已经在我的项目中实现了Excel模板下载。 我使用了ClosedXML

我有两个Excel表

工作表1:在这张表中,我有一个名为“ types ”的列,我可以在其中创build下拉列表,它是第三列。

表2:在这张表中,我有一个名为“ Types ”的列,其范围地址是: “B2:B4” ,它是第二列。

types值是:

雇员

学生

老师

现在,我想创build一个下拉列表。

我在ClosedXML中创build了一个下拉列表,代码是:

 //Getting the range of sheet 2 var range = workbook.Worksheet(2).Range(workbook.Worksheet(2).Cell(2,2).Address,workbook.Worksheet(2).Cell(4,2).Address); //Applying sheet 2's range with sheet 1 workbook.Worksheet(1).Column(3).SetDataValidation().List(range:range); wb.Worksheet(1).Column(3).SetDataValidation().IgnoreBlanks = true; wb.Worksheet(1).Column(3).SetDataValidation().InCellDropdown = true; 

我在单元格的右边拿到了下拉符号,但是我没有得到它的值。

以下是如何定义范围应该为你工作。 由于工作表2中的单元格区域将充当工作表1中的下拉列表的项目,因此您可以这样做:

 //get a reference to worksheet 2 containing various type values - Employee, Student, Teacher: var worksheet2 = workbook.Worksheet(2); //Applying sheet 2's range validation in sheet 1 where drop down list is to be shown workbook.Worksheet(1).Column(3).SetDataValidation().List(worksheet2.Range("B2:B4"), true); 

您也可以select隐藏您的数据validation工作表,以便您的电子表格的用户不会知道或可以操纵包含您的主数据下拉的第二个工作表:

 worksheet2.Hide();