在 excel 文档中创建下拉框的作用是提供一种简便的数据输入方式,限制用户只能从预定义的选项中选择,避免输入错误和确保数据的准确性。通过下拉框,用户可以从一个固定的选项列表中进行选择,而不需要手动输入数据,从而减少了输入错误的可能性。本文将介绍如何使用 spire.xls for .net 在 c# 项目中给 excel 文档创建下拉框。
安装 spire.xls for .net
首先,您需要添加 spire.xls for .net 包中包含的 dll 文件作为 .net 项目中的引用。dll文件可以从此链接下载或通过 安装。
pm> install-package spire.xls
c# 使用字符串数组创建下拉框
使用 spire.xls,通过将字符串数组赋值给 cellrange.datavalidation.values 属性,可以轻松实现在单元格中创建下拉框。以下是详细的步骤:
- 创建一个 workbook 对象。
- 使用 workbook.worksheets[0] 获取工作簿中的第一个工作表。
- 创建一个字符串数组,将它赋值给 cellrange.datavalidation.values 属性。
- 通过 workbook.savetofile() 方法保存文档到指定路径。
- c#
using spire.xls;
namespace spirexlsdemo
{
internal class program
{
static void main(string[] args)
{
// 创建一个workbook对象
workbook workbook = new workbook();
// 获取workbook对象中的第一个worksheet
worksheet worksheet = workbook.worksheets[0];
// 创建一个字符串数组
string[] values = new string[] { "山东省", "四川省", "河南省", "湖北省", "湖南省" };
// 在工作表的a1单元格设置数据验证,限制可选值为values数组中的值
worksheet.range["a1"].datavalidation.values = values;
// 将workbook对象保存为excel文件
workbook.savetofile("使用数组创建下拉框.xlsx", excelversion.version2016);
// 释放workbook对象占用的资源
workbook.dispose();
}
}
}
c# 利用同一工作表的数据创建下拉框
下面这个示例演示了在数据所在工作表中创建下拉框,只需指定数据范围并将其应用于相应单元格即可。以下是详细的步骤:
- 创建一个 workbook 对象。
- 通过 workbook.loadfromfile() 方法加载一个 excel 文档。
- 使用 workbook.worksheets[0] 获取工作簿中的第一个工作表.
- 使用 worksheet.range[""] 获取数据范围。
- 使用 worksheet.range["b1"].datavalidation.datarange 指定单元格 b1 为下拉框并设置数据范围。
- 通过 workbook.savetofile() 方法保存文档到指定路径。
- c#
using spire.xls;
namespace spirexlsdemo
{
internal class program
{
static void main(string[] args)
{
// 创建一个新的工作簿对象
workbook workbook = new workbook();
// 从文件加载工作簿数据
workbook.loadfromfile("示例1.xlsx");
// 获取工作簿中的第一个工作表
worksheet worksheet = workbook.worksheets[0];
// 获取工作表中a3到a8单元格范围
cellrange datarange = worksheet.range["a3:a8"];
// 将b1单元格设置为下拉框,数据范围为之前获取的范围
worksheet.range["b1"].datavalidation.datarange = datarange;
// 将工作簿保存到新文件中
workbook.savetofile("在同一工作表中创建下拉框.xlsx", excelversion.version2016);
// 释放工作簿资源
workbook.dispose();
}
}
}
c# 利用不同工作表的数据创建下拉框
这个示例展示了如何在一个工作表中指定数据范围,并将其应用到另一个工作表的特定单元格。在此过程中,需要确保设置 worksheet.parentworkbook.allow3drangesindatavalidation = true,从而实现在不同工作表中创建下拉框的功能。以下是详细的步骤:
- 创建一个 workbook 对象。
- 通过 workbook.loadfromfile() 方法加载一个 excel 文档。
- 使用 workbook.worksheets[] 获取工作簿中的某一个工作表。
- 设置 worksheet.parentworkbook.allow3drangesindatavalidation = true 在工作表中启用使用 3d 范围的数据验证功能。
- 使用 cellrange.datavalidation.datarange 指定单元格为下拉框并设置数据范围。
- 通过 workbook.savetofile() 方法保存文档到指定路径。
- c#
using spire.xls;
namespace spirexlsdemo
{
internal class program
{
static void main(string[] args)
{
// 创建一个workbook对象
workbook workbook = new workbook();
// 从文件加载工作簿
workbook.loadfromfile("示例2.xlsx");
// 获取第一个工作表
worksheet worksheet1 = workbook.worksheets[0];
// 获取第二个工作表
worksheet worksheet2 = workbook.worksheets[1];
// 允许在数据验证中使用3d范围
worksheet1.parentworkbook.allow3drangesindatavalidation = true;
// 定义数据范围
cellrange datarange = worksheet2.range["a1:a6"];
// 将数据范围应用到工作表1的b1单元格作为数据验证
worksheet1.range["b1"].datavalidation.datarange = datarange;
// 保存工作簿到文件
workbook.savetofile("在不同的工作表中创建下拉框.xlsx", excelversion.version2016);
// 释放工作簿资源
workbook.dispose();
}
}
}
c# 在同一个工作表中创建联动的下拉框
联动下拉菜单是指根据一个下拉菜单的选择,自动更新另一个下拉菜单的选项。这个示例展示了如何在同一工作表中创建联动的下拉框(即下拉菜单)功能。通过添加 inamerange 对象并设定引用范围,以及设置数据验证的数据范围和公式来实现下拉框的联动效果。以下是详细的步骤:
- 创建一个 workbook 对象。
- 通过 workbook.loadfromfile() 方法加载一个 excel 文档。
- 使用 workbook.worksheets[] 获取工作簿中的某一个工作表。
- 添加 inamedrange 对象并设置引用范围。
- 设置 worksheet.parentworkbook.allow3drangesindatavalidation = true ,在工作表中启用使用 3d 范围的数据验证功能。
- 使用 cellrange.datavalidation.datarange 指定单元格为下拉框并设置数据范围。
- 设置 cellrange.datavalidation.allowtype = celldatatype.user,指定工作表中单元格的数据验证类型为用户自定义。
- 设置 cellrange.datavalidation.formula1 = "=indirect($a$2)",这意味着该单元格的数据验证将根据单元格中的值来动态选择数据范围。
- 通过 workbook.savetofile() 方法保存文档到指定路径。
- c#
using spire.xls;
namespace spirexlsdemo
{
internal class program
{
static void main(string[] args)
{
// 创建一个新的工作簿对象
workbook workbook = new workbook();
// 从文件加载工作簿
workbook.loadfromfile("示例3.xlsx");
// 获取第一个工作表
worksheet worksheet1 = workbook.worksheets[0];
// 获取第二个工作表
worksheet worksheet2 = workbook.worksheets[1];
// 添加命名范围对象并设置引用范围
spire.xls.core.inamedrange namedrange = workbook.nameranges.add(worksheet2.range["a1"].text);
namedrange.referstorange = worksheet2.range["b2:b7"];
namedrange = workbook.nameranges.add(worksheet2.range["a2"].text);
namedrange.referstorange = worksheet2.range["c2:c7"];
namedrange = workbook.nameranges.add(worksheet2.range["a3"].text);
namedrange.referstorange = worksheet2.range["d2:d7"];
namedrange = workbook.nameranges.add(worksheet2.range["a4"].text);
namedrange.referstorange = worksheet2.range["e2:e7"];
namedrange = workbook.nameranges.add(worksheet2.range["a5"].text);
namedrange.referstorange = worksheet2.range["f2:f7"];
// 允许数据验证中的3d范围
worksheet1.parentworkbook.allow3drangesindatavalidation = true;
// 设置数据验证的数据范围
worksheet1.range["a2"].datavalidation.datarange = worksheet2.range["a1:a5"];
worksheet1.range["b2"].datavalidation.allowtype = celldatatype.user;
// 设置公式为indirect($a$2)
worksheet1.range["b2"].datavalidation.formula1 = "=indirect($a$2)";
// 将工作簿保存到文件
workbook.savetofile("在同一个工作表中创建联动的下拉框.xlsx", excelversion.version2016);
// 释放工作簿资源
workbook.dispose();
}
}
}
c# 在不同的工作表之间创建联动的下拉框
这个示例演示了如何在 excel 文档中实现不同工作表之间的联动下拉框功能。通过添加 inamerange 对象并设定引用范围,在第一个工作表中设置数据验证的数据范围,在第二个工作表中设置单元格的公式来实现下拉框的联动效果。以下是详细的步骤:
- 创建一个 workbook 对象。
- 通过 workbook.loadfromfile() 方法加载一个 excel 文档。
- 使用 workbook.worksheets[] 获取工作簿中的某一个工作表。
- 添加 inamedrange 对象并设置引用范围。
- 设置 worksheet.parentworkbook.allow3drangesindatavalidation = true ,在工作表中启用使用3d范围的数据验证功能。
- 使用 cellrange.datavalidation.datarange 设置数据验证的数据范围。
- 在第二个工作表的单元格中设置cellrange.formula = "=indirect(" worksheet1.name "!b1)" 公式为间接引用第一个工作表中的单元格的值。
- 通过 workbook.savetofile() 方法保存文档到指定路径。
- c#
using spire.xls;
namespace spirexlsdemo
{
internal class program
{
static void main(string[] args)
{
// 创建一个workbook对象
workbook workbook = new workbook();
// 从文件加载工作簿
workbook.loadfromfile("示例4.xlsx");
// 获取第一个工作表
worksheet worksheet1 = workbook.worksheets[0];
// 获取第二个工作表
worksheet worksheet2 = workbook.worksheets[1];
// 获取数据工作表
worksheet datasheet = workbook.worksheets[2];
// 添加命名范围对象并设置引用范围
spire.xls.core.inamedrange namedrange = workbook.nameranges.add(datasheet.range["a2"].text);
namedrange.referstorange = datasheet.range["b2"];
namedrange = workbook.nameranges.add(datasheet.range["a3"].text);
namedrange.referstorange = datasheet.range["b3"];
namedrange = workbook.nameranges.add(datasheet.range["a4"].text);
namedrange.referstorange = datasheet.range["b4"];
// 允许数据验证中的3d范围
worksheet1.parentworkbook.allow3drangesindatavalidation = true;
// 设置数据验证的数据范围
worksheet1.range["b1"].datavalidation.datarange = datasheet.range["a2:a4"];
// 设置第二个工作表的b1单元格的公式
worksheet2.range["b1"].formula = "=indirect(" worksheet1.name "!b1)";
// 将工作簿保存到文件
workbook.savetofile("在不同的工作表中创建联动的下拉框.xlsx", excelversion.version2016);
// 释放工作簿资源
workbook.dispose();
}
}
}
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。获取有效期 30 天的临时许可证。