在日常的數據處理和報表生成工作中,CSV 格式因其簡潔性而被廣泛採用。但在展示數據時,CSV 文件往往缺乏格式和結構化樣式,不利於閲讀與分析。相比之下,Excel 格式(如 .xlsx)不僅支持豐富的樣式設置,還可直接用於報表分發和打印。
本文將介紹如何使用 Java 將 CSV 文件轉換為 Excel 文件,並根據需求添加樣式優化,讓輸出結果更美觀、更專業。
- 將 CSV 轉換為 Excel(.xlsx)
- 轉換並格式化Excel輸出樣式
安裝依賴
在使用前,需要將 JAR 包引入項目。你可以在 Free Spire.XLS for Java 官方網站 下載,也可以通過 Maven 集成:
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls.free</artifactId>
<version>5.3.0</version>
</dependency>
示例 1:快速將 CSV 轉換為 Excel
如果只是將 CSV 文件轉換為 .xlsx 文件,無需任何格式調整,可以使用如下簡單代碼實現:
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);
}
}
上述代碼會將 data.csv 轉換為 Excel 文件,保留原始內容結構,默認編碼為 UTF-8。如果你的 CSV 使用的是其他分隔符(如分號),可以通過調整第二個參數來修改。
示例 2:轉換並格式化輸出樣式
在實際業務中,我們往往希望輸出的 Excel 更具可讀性,例如將表頭加粗、設置背景色、為數字列添加格式等。下面的示例展示瞭如何在轉換後進行樣式優化:
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.setKnownColor(ExcelColors.LightYellow);
for (int col = 1; col <= sheet.getLastColumn(); col++) {
sheet.getCellRange(1, col).setStyle(headerStyle);
}
// 設置數字列格式(示例中為 B 列)
CellStyle numStyle = workbook.getStyles().addStyle("Numbers");
numStyle.setNumberFormat("#,##0.00");
sheet.getCellRange("B2:B100").setStyle(numStyle);
// 自動適應所有列寬
for (int i = 1; i <= sheet.getLastRow(); i++) {
sheet.autoFitColumn(i);
}
workbook.saveToFile("formatted_output.xlsx", ExcelVersion.Version2013);
}
}
這段代碼主要完成了三項增強:
- 表頭高亮:加粗文字並設置淺黃色背景;
- 數字列格式化:以千分位並保留兩位小數方式展示;
- 列寬自適應:根據內容長度自動調整寬度,避免文本截斷。
效果對比
未格式化版本:
簡單格式化後的 Excel:
並且表頭具備背景色,更加清晰醒目。
總結
通過本文示例,你可以輕鬆地將 CSV 文件轉換為 Excel 文檔,並添加基本的樣式和格式,提升數據的可視化效果。無論是用於內部報表、客户數據導出,還是定期自動化輸出,Spire.XLS for Java 都能為你提供高效且靈活的解決方案。
更多功能與接口説明,請參考 Spire.XLS 官方文檔。