5

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

我有两张excel表

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

表 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;

我在单元格的右侧得到了下拉符号,但我没有得到其中的值。

4

1 回答 1

4

以下是定义范围应该如何为您工作。由于工作表 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();
于 2017-11-23T12:50:15.160 回答