翻譯|行業資訊|編輯:吉煒煒|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
文章轉載自:慧都網