在 excel 文档中,下拉框扮演着重要的角色。它们提供了一种便捷的方式来限制用户输入的选项,减少错误和提高数据的准确性。通过下拉框,用户可以从预定义的选项中进行选择,避免输入错误或不一致的数据。此外,下拉框还可以提升文档的可读性和易用性,使用户操作更加流畅和高效。在数据输入和分析过程中,下拉框可以帮助用户快速选择所需信息,节省时间并降低操作的复杂性。本文将介绍如何使用 spire.xls for java 在 java 项目中给 excel 文档创建下拉框。
- java 使用字符串数组创建下拉框
- java 利用同一工作表的数据创建下拉框
- java 利用不同工作表的数据创建下拉框
- java 在同一个工作表中创建联动的下拉框
- java 在不同的工作表之间创建联动的下拉框
安装 spire.xls for java
首先,您需要在 java 程序中添加 spire.xls for java 文件作为依赖项。jar 文件可以从下载。 如果您使用 maven,则可以将以下代码添加到项目的 pom.xml 文件中,从而轻松地在应用程序中导入 jar 文件。
com.e-iceblue
e-iceblue
https://repo.e-iceblue.cn/repository/maven-public/
e-iceblue
spire.xls
14.5.1
java 使用字符串数组创建下拉框
通过使用 spire.xls,将字符串数组赋值给 cellrange.getdatavalidation().setvalues() 属性,可以很容易地在单元格中创建下拉框。以下是详细的步骤:
- 创建一个 workbook 对象。
- 使用 workbook.getworksheets().get(0) 获取工作簿中的第一个工作表。
- 创建一个字符串数组,将它赋值给 cellrange.getdatavalidation().setvalues() 方法。
- 通过 workbook.savetofile() 方法保存文档到指定路径。
- java
import com.spire.xls.*;
public class spiresampledemo {
public static void main(string[] args) {
// 创建一个workbook对象
workbook workbook = new workbook();
// 获取workbook对象中的第一个worksheet
worksheet worksheet = workbook.getworksheets().get(0);
// 创建一个字符串数组
string[] values = new string[] { "山东省", "四川省", "河南省", "湖北省", "湖南省" };
// 在工作表的a1单元格设置数据验证,限制可选值为values数组中的值
worksheet.getcellrange("a1").getdatavalidation().setvalues(values);
// 将workbook对象保存为excel文件
workbook.savetofile("使用数组创建下拉框.xlsx", excelversion.version2016);
// 释放workbook对象占用的资源
workbook.dispose();
}
}
java 利用同一工作表的数据创建下拉框
这个示例展示了如何在数据所在工作表中创建下拉框,需要指定一个数据范围并将其应用于要创建下拉框的单元格即可。以下是详细的步骤:
- 创建一个 workbook 对象。
- 通过 workbook.loadfromfile() 方法加载一个 excel 文档。
- 使用 workbook.getworksheets().get(0) 获取工作簿中的第一个工作表.
- 使用 worksheet.getcellrang()方法 获取数据范围。
- 使用 cellrange.getdatavalidation().setdatarange() 方法指定一个单元格为下拉框并设置数据范围。
- 通过 workbook.savetofile() 方法保存文档到指定路径。
- java
import com.spire.xls.*;
public class spiresampledemo {
public static void main(string[] args) {
// 创建一个新的工作簿对象
workbook workbook = new workbook();
// 从文件加载工作簿数据
workbook.loadfromfile("示例1.xlsx");
// 获取工作簿中的第一个工作表
worksheet worksheet = workbook.getworksheets().get(0);
// 获取工作表中a3到a8单元格范围
cellrange datarange = worksheet.getcellrange("a3:a8");
// 将b1单元格设置为下拉框,数据范围为之前获取的范围
worksheet.getcellrange("b1").getdatavalidation().setdatarange(datarange);
// 将工作簿保存到新文件中
workbook.savetofile("在同一工作表中创建下拉框.xlsx", excelversion.version2016);
// 释放工作簿资源
workbook.dispose();
}
}
java 利用不同工作表的数据创建下拉框
这个示例演示了如何在一个工作表中定义数据范围,并将其应用到另一个工作表的特定单元格。要实现在不同工作表中创建下拉框,需要确保设置 worksheet.parentworkbook.allow3drangesindatavalidation = true。以下是详细的步骤:
- 创建一个 workbook 对象。
- 通过 workbook.loadfromfile() 方法加载一个 excel 文档。
- 使用 workbook.getworksheets().get() 方法获取工作簿中的一个工作表。
- 设置 worksheet.getparentworkbook().setallow3drangesindatavalidation(true),在工作表中启用使用3d范围的数据验证功能。
- 使用 cellrange.getdatavalidation().setdatarange() 方法指定单元格为下拉框并设置数据范围。
- 通过 workbook.savetofile() 方法保存文档到指定路径。
- java
import com.spire.xls.*;
public class spiresampledemo {
public static void main(string[] args) {
// 创建一个workbook对象
workbook workbook = new workbook();
// 从文件加载工作簿
workbook.loadfromfile("示例2.xlsx");
// 获取第一个工作表
worksheet worksheet1 = workbook.getworksheets().get(0);
// 获取第二个工作表
worksheet worksheet2 = workbook.getworksheets().get(1);
// 允许在数据验证中使用3d范围
worksheet1.getparentworkbook().setallow3drangesindatavalidation(true);
// 定义数据范围
cellrange datarange = worksheet2.getcellrange("a1:a6");
// 将数据范围应用到工作表1的b1单元格作为数据验证
worksheet1.getcellrange("b1").getdatavalidation().setdatarange(datarange);
// 保存工作簿到文件
workbook.savetofile("在不同的工作表中创建下拉框.xlsx", excelversion.version2016);
// 释放工作簿资源
workbook.dispose();
}
}
java 在同一个工作表中创建联动的下拉框
联动下拉菜单是指根据一个选项的选择,自动调整另一个下拉菜单的内容。这个示例展示了如何在同一个工作表中实现这种联动效果。实现的方式是通过添加 inamerange 对象并设定引用范围,以及设置数据验证的数据范围和公式来实现下拉菜单之间的关联。以下是详细的步骤:
- 创建一个 workbook 对象。
- 通过 workbook.loadfromfile() 方法加载一个 excel 文档。
- 使用 workbook.getworksheets().get() 获取工作簿中的一个工作表。
- 添加 inamedrange 对象并设置引用范围。
- 设置 worksheet.getparentworkbook().setallow3drangesindatavalidation(true) ,在工作表中启用使用3d范围的数据验证功能。
- 使用 cellrange.getdatavalidation().setdatarange() 指定单元格为下拉框并设置数据范围。
- 设置 cellrange.getdatavalidation().setallowtype(celldatatype.user),指定工作表中单元格的数据验证类型为用户自定义。
- 设置 cellrange.getdatavalidation().setformula1("=indirect($a$2)"),使该单元格的数据验证将根据单元格中的值来动态选择数据范围。
- 通过 workbook.savetofile() 方法保存文档到指定路径。
- java
import com.spire.xls.*;
import com.spire.xls.core.*;
public class spiresampledemo {
public static void main(string[] args) {
// 创建一个新的工作簿对象
workbook workbook = new workbook();
// 从文件加载工作簿
workbook.loadfromfile("示例3.xlsx");
// 获取第一个工作表
worksheet worksheet1 = workbook.getworksheets().get(0);
// 获取第二个工作表
worksheet worksheet2 = workbook.getworksheets().get(1);
// 添加命名范围对象并设置引用范围
inamedrange namedrange = workbook.getnameranges().add(worksheet2.getcellrange("a1").gettext());
namedrange.setreferstorange(worksheet2.getcellrange("b2:b7"));
namedrange = workbook.getnameranges().add(worksheet2.getcellrange("a2").gettext());
namedrange.setreferstorange(worksheet2.getcellrange("c2:c7"));
namedrange = workbook.getnameranges().add(worksheet2.getcellrange("a3").gettext());
namedrange.setreferstorange(worksheet2.getcellrange("d2:d7"));
namedrange = workbook.getnameranges().add(worksheet2.getcellrange("a4").gettext());
namedrange.setreferstorange(worksheet2.getcellrange("e2:e7"));
namedrange = workbook.getnameranges().add(worksheet2.getcellrange("a5").gettext());
namedrange.setreferstorange(worksheet2.getcellrange("f2:f7"));
// 允许数据验证中的3d范围
worksheet1.getparentworkbook().setallow3drangesindatavalidation(true);
// 设置数据验证的数据范围
worksheet1.getcellrange("a2").getdatavalidation().setdatarange(worksheet2.getcellrange("a1:a5"));
worksheet1.getcellrange("b2").getdatavalidation().setallowtype(celldatatype.user);
// 设置公式为indirect($a$2)
worksheet1.getcellrange("b2").getdatavalidation().setformula1("=indirect($a$2)");
// 将工作簿保存到文件
workbook.savetofile("在同一个工作表中创建联动的下拉框.xlsx", excelversion.version2016);
// 释放工作簿资源
workbook.dispose();
}
}
java 在不同的工作表之间创建联动的下拉框
这个示例演示了如何在 excel 文档中实现不同工作表之间的联动下拉框功能。通过添加 inamerange 对象并设定引用范围,在第一个工作表中设置数据验证的数据范围,在第二个工作表中设置单元格的公式来实现下拉框的联动效果。以下是详细的步骤:
- 创建一个 workbook 对象。
- 通过 workbook.loadfromfile() 方法加载一个 excel 文档。
- 使用 workbook.getworksheets().get() 获取工作簿中的一个工作表。
- 添加 inamedrange 对象并设置引用范围。
- 设置 worksheet.getparentworkbook().setallow3drangesindatavalidation(true),在工作表中启用使用3d范围的数据验证功能。
- 使用 cellrange.getdatavalidation().setdatarange() 设置数据验证的数据范围。
- 在第二个工作表的单元格中设置cellrange.setformula("=indirect(" worksheet1.getname() "!b1)") 公式为间接引用第一个工作表中的单元格的值。
- 通过 workbook.savetofile() 方法保存文档到指定路径。
- java
import com.spire.xls.*;
import com.spire.xls.core.*;
public class spiresampledemo {
public static void main(string[] args) {
// 创建一个workbook对象
workbook workbook = new workbook();
// 从文件加载工作簿
workbook.loadfromfile("示例4.xlsx");
// 获取第一个工作表
worksheet worksheet1 = workbook.getworksheets().get(0);
// 获取第二个工作表
worksheet worksheet2 = workbook.getworksheets().get(1);
// 获取数据工作表
worksheet datasheet = workbook.getworksheets().get(2);
// 添加命名范围对象并设置引用范围
inamedrange namedrange = workbook.getnameranges().add(datasheet.getcellrange("a2").gettext());
namedrange.setreferstorange(datasheet.getcellrange("b2"));
namedrange = workbook.getnameranges().add(datasheet.getcellrange("a3").gettext());
namedrange.setreferstorange(datasheet.getcellrange("b3"));
namedrange = workbook.getnameranges().add(datasheet.getcellrange("a4").gettext());
namedrange.setreferstorange(datasheet.getcellrange("b4"));
// 允许数据验证中的3d范围
worksheet1.getparentworkbook().setallow3drangesindatavalidation(true);
// 设置数据验证的数据范围
worksheet1.getcellrange("b1").getdatavalidation().setdatarange(datasheet.getcellrange("a2:a4"));
// 设置第二个工作表的b1单元格的公式
worksheet2.getcellrange("b1").setformula("=indirect(" worksheet1.getname() "!b1)");
// 将工作簿保存到文件
workbook.savetofile("在不同的工作表中创建联动的下拉框.xlsx", excelversion.version2016);
// 释放工作簿资源
workbook.dispose();
}
}
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。获取有效期 30 天的临时许可证。