翻譯|行業(yè)資訊|編輯:吉煒煒|2025-09-04 09:39:52.360|閱讀 58 次
概述:手動向 Excel 工作表中輸入數(shù)據(jù)既耗時又容易出錯,尤其是在處理大型數(shù)據(jù)集時。而借助合適的 Java Excel 庫,可以簡化數(shù)據(jù)輸入這一流程。本文將詳細介紹如何使用 Spire.XLS for Java 庫,通過 3 種高效方法完成 Java 向 Excel 工作表的數(shù)據(jù)寫入,涵蓋基礎的逐個單元格錄入、批量數(shù)組插入以及 DataTable 導出。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
手動向 Excel 工作表中輸入數(shù)據(jù)既耗時又容易出錯,尤其是在處理大型數(shù)據(jù)集時。而借助合適的 Java Excel 庫,可以簡化數(shù)據(jù)輸入這一流程。
E-iceblue旗下Spire系列產(chǎn)品,是文檔處理領域的佼佼者,支持國產(chǎn)化信創(chuàng)。本文將詳細介紹如何使用 Spire.XLS for Java 庫,通過 3 種高效方法完成 Java 向 Excel 工作表的數(shù)據(jù)寫入,涵蓋基礎的逐個單元格錄入、批量數(shù)組插入以及 DataTable 導出。
	
	
	 
		加入Spire技術交流QQ群(125237868),與更多開發(fā)者一起提升文檔開發(fā)技能。
	
開始之前,需先將 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 提供了靈活的數(shù)據(jù)寫入方法,可適配不同使用場景。以下將結(jié)合完整代碼示例、說明及適用場景,逐一介紹每種方法。
若需向單個單元格填充文本或數(shù)字,Spire.XLS 支持通過行、列索引(例如(2,1)代表第 2 行第 1 列)或 Excel 樣式引用(例如"A1"、"B3")直接定位目標單元格:
核心方法:
Java 代碼示例:
import com.spire.xls.*;
public class WriteToCells {
    public static void main(String[] args) {
        // 創(chuàng)建 Workbook 對象
        Workbook workbook = new Workbook();
        // 獲取第一個工作表
        Worksheet worksheet = workbook.getWorksheets().get(0);
        // 向指定單元格寫入數(shù)據(jù)
        worksheet.get("A1").setValue("物品名");
        worksheet.get("B1").setValue("數(shù)量");
        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("寫入數(shù)據(jù)到單元格.xlsx", ExcelVersion.Version2016);
    }
}
適用場景:
適用于小型數(shù)據(jù)集,且需要精確控制單元格位置的場景(例如添加標題、單行數(shù)據(jù)錄入)。
效果預覽:
	
將一維數(shù)組(單行)或二維數(shù)組(多行多列)一次性插入連續(xù)單元格區(qū)域,能提升逐個寫入的效率。
核心 API:insertArray() 解析
insertArray() 方法可輕松處理一維數(shù)組(單行數(shù)據(jù))和二維數(shù)組(多行多列數(shù)據(jù)),其參數(shù)說明如下:
Java 代碼示例:
import com.spire.xls.*;
public class WriteArrayToWorksheet {
    public static void main(String[] args) {
        // 創(chuàng)建 Workbook 實例
        Workbook workbook = new Workbook();
        // 獲取第一個工作表
        Worksheet worksheet = workbook.getWorksheets().get(0);
        // 創(chuàng)建一維數(shù)組
        Object[] oneDimensionalArray = {"一月", "二月", "三月", "四月", "五月", "六月"};
        // 將一維數(shù)組寫入工作表第一行
        worksheet.insertArray(oneDimensionalArray, 1, 1, false);
        // 創(chuàng)建二維數(shù)組
        Object[][] twoDimensionalArray = {
                {"姓名", "年齡", "性別", "部門", "電話"},
                {"Bob", "25", "男", "技術部", "654214"},
                {"John", "24", "男", "廣告部", "624847"},
                {"Kelly", "26", "女", "銷售部", "624758"}
        };
        // 將二維數(shù)組從 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("寫入數(shù)組.xlsx", ExcelVersion.Version2016);
    }
}
適用場景:
適用于有序數(shù)據(jù)(例如庫存日志、用戶列表)的批量插入場景。
效果預覽:
 
若數(shù)據(jù)存儲在 DataTable 中(例如來自數(shù)據(jù)庫的數(shù)據(jù)),Spire.XLS 可通過 insertDataTable() 方法直接將其導出到 Excel,并保留數(shù)據(jù)結(jié)構(gòu)和列標題。
核心 API:insertDataTable() 解析
insertDataTable() 是專用于向 Excel 工作表中批量插入結(jié)構(gòu)化數(shù)據(jù)集的方法,其參數(shù)說明如下:
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 {
        // 創(chuàng)建 Workbook 實例
        Workbook workbook = new Workbook();
        // 獲取第一個工作表
        Worksheet worksheet = workbook.getWorksheets().get(0);
        // 創(chuàng)建 DataTable 對象
        DataTable dataTable = new DataTable();
        dataTable.getColumns().add("SKU", Integer.class); // 庫存單位(SKU)
        dataTable.getColumns().add("產(chǎn)品名", String.class); // 產(chǎn)品名稱
        dataTable.getColumns().add("價格", String.class); // 價格
        // 創(chuàng)建數(shù)據(jù)行并添加數(shù)據(jù)
        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);
    }
}
適用場景:
適用于導出數(shù)據(jù)庫數(shù)據(jù)、客戶關系管理(CRM)數(shù)據(jù),或任何存儲在 DataTable 中的結(jié)構(gòu)化數(shù)據(jù)(例如 SQL 查詢結(jié)果、CSV 導入數(shù)據(jù))。
效果預覽:

	
當處理超大型數(shù)據(jù)時,需通過以下手段減少內(nèi)存占用、提升速度:
答:Spire.XLS for Java 支持所有主流 Excel 格式,包括:
可通過 saveToFile() 方法指定輸出格式。
對于數(shù)據(jù)驅(qū)動應用中的 Java 開發(fā)者而言,掌握 Excel 導出功能至關重要。Spire.XLS for Java 庫提供了 3 種通過 Java 向 Excel 寫入數(shù)據(jù)的高效方法:
結(jié)合本文的性能優(yōu)化技巧,可輕松應對從簡單報表到大型數(shù)據(jù)導出的各類需求。
————————————————————————————————————————
關于慧都科技:
慧都科技是一家行業(yè)數(shù)字化解決方案公司,長期專注于軟件、油氣與制造行業(yè)。公司基于深入的業(yè)務理解與管理洞察,以系統(tǒng)化的業(yè)務建模驅(qū)動技術落地,幫助企業(yè)實現(xiàn)智能化運營與長期競爭優(yōu)勢。在軟件工程領域,我們提供開發(fā)控件、研發(fā)管理、代碼開發(fā)、部署運維等軟件開發(fā)全鏈路所需的產(chǎn)品,提供正版授權采購、技術選型、個性化維保等服務,幫助客戶實現(xiàn)技術合規(guī)、降本增效與風險可控。慧都科技E-iceblue的官方授權代理商,提供E-iceblue系列產(chǎn)品免費試用,咨詢,正版銷售等于一體的專業(yè)化服務。E-iceblue旗下Spire系列產(chǎn)品是國產(chǎn)文檔處理領域的優(yōu)秀產(chǎn)品,支持國產(chǎn)化,幫助企業(yè)高效構(gòu)建文檔處理的應用程序。
歡迎下載|體驗更多E-iceblue產(chǎn)品
獲取更多信息請咨詢 ;技術交流Q群(125237868)
	
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務必注明出處、不得修改原文相關鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@ke049m.cn
文章轉(zhuǎn)載自:慧都網(wǎng)