使用ClosedXML创建下拉列表

时间:2015-09-22 05:11:06

标签: c# .net excel closedxml

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

我有两张excel表

Sheet 1中:        在此表中,我有一个名为“类型”的列,我可以在其中创建下拉列表,它是第三列。

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

类型值为:

员工

学生

老师

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

我在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;

我在单元格的右侧有一个下拉符号,但我没有得到它的值。

1 个答案:

答案 0 :(得分:1)

以下是定义范围应该如何适合您的方法。由于工作表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();