使用ClosedXML创建下拉列表
本文关键字:下拉列表 创建 ClosedXML 使用 | 更新日期: 2023-09-27 18:13:48
我在我的项目中实现了Excel模板下载。我使用ClosedXML
我有两个excel表格
Sheet1 :在这个工作表中,我有一个名为类型的列,我可以在其中创建下拉列表,它是第三列。
Sheet2 :在这个表中,我有一个名为Types的列,其范围地址是:B2:B4,它是第二列。
类型值:
Employee
Student
Teacher
现在,我想创建一个下拉列表。
我在ClosedXML中创建了一个下拉列表,代码是:
//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);
您还应该隐藏数据验证工作表。这将确保数据源工作表对工作表的用户是隐藏的。由于工作表的用户不会看到它,因此他们将无法更改下拉列表的主数据。您可以使用下面的代码行来实现:
worksheet2.Hide();