翻譯|使用教程|編輯:吉煒煒|2025-07-29 11:59:04.027|閱讀 89 次
概述:將 CSV 文件轉換為 Excel 是 Java 開發者在進行數據報表、分析流程或文件轉換時常見的操作。雖然可以手動解析 CSV 文件,但這種方式不僅代碼繁瑣,而且格式控制能力有限。借助如 Spire.XLS for Java 這樣的專業 Excel 庫,可以極大簡化處理流程,同時實現對布局、樣式、模板以及數據整合的全面控制。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
將 CSV 文件轉換為 Excel 是 Java 開發者在進行數據報表、分析流程或文件轉換時常見的操作。雖然可以手動解析 CSV 文件,但這種方式不僅代碼繁瑣,而且格式控制能力有限。借助如 Spire.XLS for Java 這樣的專業 Excel 庫,可以極大簡化處理流程,同時實現對布局、樣式、模板以及數據整合的全面控制。
E-iceblue旗下Spire系列產品,是文檔處理領域的佼佼者,支持國產化信創。本文將帶你逐步了解多種使用場景,介紹如何借助 Spire.XLS for Java 使用 Java 將 CSV 轉換為 Excel,包括基本的導入導出、樣式設置、注入模板數據、以及將多個 CSV 文件合并為一個 Excel 工作簿等內容。
加入Spire技術交流QQ群(125237868),與更多開發者一起提升文檔開發技能。
在進行 CSV 到 Excel 的轉換前,需要將 Spire.XLS for Java 引入到項目中。該庫支持 .xls 與 .xlsx 文件格式,并提供簡潔的 API,無需安裝 Microsoft Office 即可創建和操作 Excel 文檔。
通過 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.7.7</version> </dependency> </dependencies>
手動引入 JAR 包
你也可以下載 Spire.XLS for Java,并手動將 JAR 文件添加到項目的類路徑中。
最基本的使用場景是將一個 .csv 文件轉換為 .xlsx 或 .xls 格式。使用 Spire.XLS,只需兩步即可完成:使用 loadFromFile() 加載 CSV,使用 saveToFile() 保存為 Excel 文件。
import com.spire.xls.*; public class CsvToXlsx { public static void main(String[] args) { Workbook workbook = new Workbook(); workbook.loadFromFile("data.csv", ","); workbook.saveToFile("output.xlsx", ExcelVersion.Version2013); } }
若要輸出為 .xls 格式,只需將版本參數改為 ExcelVersion.Version97to2003。
以下是轉換結果示意圖:
此外,你還可以自定義分隔符,或設置起始的行和列位置,非常適合已有標題或固定布局的場景:
workbook.loadFromFile("data_semicolon.csv", ";", 3, 2);
在生成用于報表或客戶展示的 Excel 文件時,設置樣式能顯著提升可讀性與專業感。Spire.XLS 支持通過 CellStyle 類自定義字體、顏色、數字格式等,并支持自動調整列寬。
import com.spire.xls.*; public class CsvToXlsx { public static void main(String[] args) { Workbook workbook = new Workbook(); workbook.loadFromFile("data.csv", ","); Worksheet sheet = workbook.getWorksheets().get(0); // 設置表頭樣式 CellStyle headerStyle = workbook.getStyles().addStyle("Header"); headerStyle.getFont().isBold(true); headerStyle.getFont().setSize(14f); headerStyle.setKnownColor(ExcelColors.LightYellow); for (int col = 1; col <= sheet.getLastColumn(); col++) { sheet.getCellRange(1, col).setStyle(headerStyle); } // 設置數字列樣式 CellStyle numStyle = workbook.getStyles().addStyle("Numbers"); numStyle.setNumberFormat("#,##0.00"); sheet.getCellRange("B2:B100").setStyle(numStyle); // 統一設置字體自動調整列寬 sheet.getRange().getStyle().getFont().setFontName("微軟雅黑"); for (int i = 1; i <= sheet.getLastRow(); i++) { sheet.autoFitColumn(i); } workbook.saveToFile("formatted_output.xlsx", ExcelVersion.Version2013); } }以下是帶有格式的 Excel 輸出示例:
如果你想將數據導入到預設的 Excel 模板中,只需加載現有 .xlsx 文件,并使用如 。請注意,模板格式不會自動應用,仍需手動設置樣式。
當處理批量數據或多個來源的數據時,通常需要將多個 CSV 文件合并為一個 Excel 文件。Spire.XLS 支持以下兩種方式:
import com.spire.xls.*; import java.io.File; public class CsvToXlsx { public static void main(String[] args) { File[] csvFiles = new File("CSVs/").listFiles((dir, name) -> name.endsWith(".csv")); Workbook workbook = new Workbook(); workbook.getWorksheets().clear(); for (File csv : csvFiles) { Workbook temp = new Workbook(); temp.loadFromFile(csv.getAbsolutePath(), ","); workbook.getWorksheets().addCopy(temp.getWorksheets().get(0)); } workbook.saveToFile("merged.xlsx", ExcelVersion.Version2016); } }下圖展示了多個工作表組成的 Excel 文件:
import com.spire.xls.*; import java.io.File; public class CsvToXlsx { public static void main(String[] args) { File[] csvFiles = new File("CSVs/").listFiles((dir, name) -> name.endsWith(".csv")); Workbook workbook = new Workbook(); workbook.getWorksheets().clear(); Worksheet sheet = workbook.getWorksheets().add("Sample"); int startRow = 1; boolean isFirstFile = true; for (File csv : csvFiles) { Workbook temp = new Workbook(); temp.loadFromFile(csv.getAbsolutePath(), ","); Worksheet tempSheet = temp.getWorksheets().get(0); int startReadRow = isFirstFile ? 1 : 2; isFirstFile = false; for (int r = startReadRow; r <= tempSheet.getLastRow(); r++) { for (int c = 1; c <= tempSheet.getLastColumn(); c++) { sheet.getCellRange(startRow, c).setValue(tempSheet.getCellRange(r, c).getText()); } startRow++; } } workbook.saveToFile("merged_single_sheet.xlsx", ExcelVersion.Version2016); } }
以下是合并結果的截圖:
錯誤及解決方法:
請確保 CSV 文件采用 UTF-8 編碼。
檢查使用的分隔符是否一致。
考慮將其拆分為多個工作表,提高處理效率。
先統一字段結構或列標題,再執行合并操作。
使用 Workbook.loadFromFile("file.csv", ",") 加載 CSV 文件,然后使用 saveToFile("output.xlsx", ExcelVersion.Version2016) 保存為 .xlsx 文件。
可以。通過 CellStyle 類可設置字體、顏色、對齊方式、數字格式等。
完全可以。加載 .xlsx 模板文件后,通過 setText() 或 insertDataTable() 方法注入數據。
可以選擇每個 CSV 為一個工作表,或將它們逐行追加合并到一個工作表中。
————————————————————————————————————————
關于慧都科技:
慧都科技是一家行業數字化解決方案公司,長期專注于軟件、油氣與制造行業。公司基于深入的業務理解與管理洞察,以系統化的業務建模驅動技術落地,幫助企業實現智能化運營與長期競爭優勢。在軟件工程領域,我們提供開發控件、研發管理、代碼開發、部署運維等軟件開發全鏈路所需的產品,提供正版授權采購、技術選型、個性化維保等服務,幫助客戶實現技術合規、降本增效與風險可控。慧都科技E-iceblue的官方授權代理商,提供E-iceblue系列產品免費試用,咨詢,正版銷售等于一體的專業化服務。E-iceblue旗下Spire系列產品是國產文檔處理領域的優秀產品,支持國產化,幫助企業高效構建文檔處理的應用程序。
歡迎下載|體驗更多E-iceblue產品
獲取更多信息請咨詢 ;技術交流Q群(125237868)
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網