翻译|行业资讯|编辑:吉炜炜|2025-09-04 09:39:52.360|阅读 21 次
概述:手动向 Excel 工作表中输入数据既耗时又容易出错,尤其是在处理大型数据集时。而借助合适的 Java Excel 库,可以简化数据输入这一流程。本文将详细介绍如何使用 Spire.XLS for Java 库,通过 3 种高效方法完成 Java 向 Excel 工作表的数据写入,涵盖基础的逐个单元格录入、批量数组插入以及 DataTable 导出。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
手动向 Excel 工作表中输入数据既耗时又容易出错,尤其是在处理大型数据集时。而借助合适的 Java Excel 库,可以简化数据输入这一流程。
E-iceblue旗下Spire系列产品,是文档处理领域的佼佼者,支持国产化信创。本文将详细介绍如何使用 Spire.XLS for Java 库,通过 3 种高效方法完成 Java 向 Excel 工作表的数据写入,涵盖基础的逐个单元格录入、批量数组插入以及 DataTable 导出。
加入Spire技术交流QQ群(125237868),与更多开发者一起提升文档开发技能。
开始之前,需先将 Spire.XLS for Java 集成到项目中,以下为两种快速部署方式:
方式 1:手动下载 JAR 包
方式 2:Maven 依赖集成
在项目 pom.xml 中添加以下仓库和依赖,Maven 会自动下载并引入库(无需手动处理依赖冲突):
<repositories> <repository> <id>com.e-iceblue</id> <name>e-iceblue</name> <url>//repo.e-iceblue.cn/repository/maven-public/</url> </repository> </repositories> <dependencies> <dependency> <groupId>e-iceblue</groupId> <artifactId>spire.xls</artifactId> <version>15.8.3</version> </dependency> </dependencies>
Spire.XLS for Java 提供了灵活的数据写入方法,可适配不同使用场景。以下将结合完整代码示例、说明及适用场景,逐一介绍每种方法。
若需向单个单元格填充文本或数字,Spire.XLS 支持通过行、列索引(例如(2,1)代表第 2 行第 1 列)或 Excel 样式引用(例如"A1"、"B3")直接定位目标单元格:
核心方法:
Java 代码示例:
import com.spire.xls.*; public class WriteToCells { public static void main(String[] args) { // 创建 Workbook 对象 Workbook workbook = new Workbook(); // 获取第一个工作表 Worksheet worksheet = workbook.getWorksheets().get(0); // 向指定单元格写入数据 worksheet.get("A1").setValue("物品名"); worksheet.get("B1").setValue("数量"); worksheet.get("C1").setValue("分类"); worksheet.get("D1").setValue("采购日期"); worksheet.get(2,1).setValue("键盘"); worksheet.get(2,2).setNumberValue(12); worksheet.get(2,3).setValue("办公用品"); worksheet.get(2,4).setValue("2024/11/09"); worksheet.get(3,1).setValue("毛巾"); worksheet.get(3,2).setNumberValue(30); worksheet.get(3,3).setValue("生活用品"); worksheet.get(3,4).setValue("2024/12/18"); // 为第一行应用样式 CellStyle style = workbook.getStyles().addStyle("newStyle"); style.getFont().isBold(true); // 设置字体为粗体 worksheet.getRange().get(1,1,1,4).setStyle(style); // 保存为 Excel 文件 workbook.saveToFile("写入数据到单元格.xlsx", ExcelVersion.Version2016); } }
适用场景:
适用于小型数据集,且需要精确控制单元格位置的场景(例如添加标题、单行数据录入)。
效果预览:
将一维数组(单行)或二维数组(多行多列)一次性插入连续单元格区域,能提升逐个写入的效率。
核心 API:insertArray() 解析
insertArray() 方法可轻松处理一维数组(单行数据)和二维数组(多行多列数据),其参数说明如下:
Java 代码示例:
import com.spire.xls.*; public class WriteArrayToWorksheet { public static void main(String[] args) { // 创建 Workbook 实例 Workbook workbook = new Workbook(); // 获取第一个工作表 Worksheet worksheet = workbook.getWorksheets().get(0); // 创建一维数组 Object[] oneDimensionalArray = {"一月", "二月", "三月", "四月", "五月", "六月"}; // 将一维数组写入工作表第一行 worksheet.insertArray(oneDimensionalArray, 1, 1, false); // 创建二维数组 Object[][] twoDimensionalArray = { {"姓名", "年龄", "性别", "部门", "电话"}, {"Bob", "25", "男", "技术部", "654214"}, {"John", "24", "男", "广告部", "624847"}, {"Kelly", "26", "女", "销售部", "624758"} }; // 将二维数组从 A3 单元格开始写入工作表 worksheet.insertArray(twoDimensionalArray, 3, 1); // 为第一行和第三行应用样式 CellStyle style = workbook.getStyles().addStyle("newStyle"); style.getFont().isBold(true); // 设置字体为粗体 worksheet.getRange().get(1,1,1,6).setStyle(style); worksheet.getRange().get(3,1,3,6).setStyle(style); // 保存为 Excel 文件 workbook.saveToFile("写入数组.xlsx", ExcelVersion.Version2016); } }
适用场景:
适用于有序数据(例如库存日志、用户列表)的批量插入场景。
效果预览:
若数据存储在 DataTable 中(例如来自数据库的数据),Spire.XLS 可通过 insertDataTable() 方法直接将其导出到 Excel,并保留数据结构和列标题。
核心 API:insertDataTable() 解析
insertDataTable() 是专用于向 Excel 工作表中批量插入结构化数据集的方法,其参数说明如下:
Java 代码示例:
import com.spire.xls.*; import com.spire.xls.data.table.DataRow; import com.spire.xls.data.table.DataTable; public class WriteDataTableToWorksheet { public static void main(String[] args) throws Exception { // 创建 Workbook 实例 Workbook workbook = new Workbook(); // 获取第一个工作表 Worksheet worksheet = workbook.getWorksheets().get(0); // 创建 DataTable 对象 DataTable dataTable = new DataTable(); dataTable.getColumns().add("SKU", Integer.class); // 库存单位(SKU) dataTable.getColumns().add("产品名", String.class); // 产品名称 dataTable.getColumns().add("价格", String.class); // 价格 // 创建数据行并添加数据 DataRow dr = dataTable.newRow(); dr.setInt(0, 512900512); dr.setString(1,"无线鼠标M200"); dr.setString(2,"¥99"); dataTable.getRows().add(dr); dr = dataTable.newRow(); dr.setInt(0,512900637); dr.setString(1,"B100有线鼠标"); dr.setString(2,"¥85"); dataTable.getRows().add(dr); dr = dataTable.newRow(); dr.setInt(0,512901829); dr.setString(1,"游戏鼠标"); dr.setString(2,"¥125"); dataTable.getRows().add(dr); dr = dataTable.newRow(); dr.setInt(0,512900386); dr.setString(1,"ZM光电鼠标"); dr.setString(2,"¥89"); dataTable.getRows().add(dr); // 将DataTable写入工作表 worksheet.insertDataTable(dataTable,true,1,1,true); // 为第一行应用样式 CellStyle style = workbook.getStyles().addStyle("newStyle"); style.getFont().isBold(true); // 设置字体为粗体 worksheet.getRange().get(1,1,1,3).setStyle(style); // 保存为Excel文件 workbook.saveToFile("写入DataTable.xlsx", ExcelVersion.Version2016); } }
适用场景:
适用于导出数据库数据、客户关系管理(CRM)数据,或任何存储在 DataTable 中的结构化数据(例如 SQL 查询结果、CSV 导入数据)。
效果预览:
当处理超大型数据时,需通过以下手段减少内存占用、提升速度:
答:Spire.XLS for Java 支持所有主流 Excel 格式,包括:
可通过 saveToFile() 方法指定输出格式。
对于数据驱动应用中的 Java 开发者而言,掌握 Excel 导出功能至关重要。Spire.XLS for Java 库提供了 3 种通过 Java 向 Excel 写入数据的高效方法:
结合本文的性能优化技巧,可轻松应对从简单报表到大型数据导出的各类需求。
————————————————————————————————————————
关于慧都科技:
慧都科技是一家行业数字化解决方案公司,长期专注于软件、油气与制造行业。公司基于深入的业务理解与管理洞察,以系统化的业务建模驱动技术落地,帮助企业实现智能化运营与长期竞争优势。在软件工程领域,我们提供开发控件、研发管理、代码开发、部署运维等软件开发全链路所需的产品,提供正版授权采购、技术选型、个性化维保等服务,帮助客户实现技术合规、降本增效与风险可控。慧都科技E-iceblue的官方授权代理商,提供E-iceblue系列产品免费试用,咨询,正版销售等于一体的专业化服务。E-iceblue旗下Spire系列产品是国产文档处理领域的优秀产品,支持国产化,帮助企业高效构建文档处理的应用程序。
欢迎下载|体验更多E-iceblue产品
获取更多信息请咨询 ;技术交流Q群(125237868)
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@fc6vip.cn
文章转载自:慧都网