【问题标题】:Create dropdown list using ClosedXML使用 ClosedXML 创建下拉列表
【发布时间】:2015-09-22 05:11:06
【问题描述】:

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

我有两张excel表格

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

表 2: 在这张表中,我有一个名为“Types”的列,其范围地址是:“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;

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

【问题讨论】:

标签: c# .net excel closedxml


【解决方案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();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-15
    • 2020-02-06
    • 1970-01-01
    • 2013-11-07
    相关资源
    最近更新 更多