Vik*_*ash 6 .net c# excel closedxml
我在我的项目中实现了Excel模板下载。我使用ClosedXML。
我有两张Excel表
Sheet1:在此工作表中,我有一个名为“类型”的列 ,我可以在其中创建下拉列表,它是第三列。
Sheet2:在这张表中,我有一个名为“类型”的列 ,其范围地址为:B2:B4,它是第二列。
类型值为:
Employee
Student
Teacher
Run Code Online (Sandbox Code Playgroud)
现在,我想创建一个下拉列表。
我在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;
Run Code Online (Sandbox Code Playgroud)
我在单元格的右端看到了下拉符号,但没有得到其中的值。
以下是定义范围的方法。
此处,工作表 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);
Run Code Online (Sandbox Code Playgroud)
您还应该隐藏数据验证工作表。这将确保数据源工作表对工作表的用户隐藏。由于工作表的用户看不到它,因此他们无法更改下拉列表的主数据。您可以通过以下代码行来实现:
worksheet2.Hide();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7814 次 |
最近记录: |