Java高效實現(xiàn)CSV轉(zhuǎn)Excel的三種方法詳解
?在日常開發(fā)工作中,CSV 文件作為一種簡單、輕便的數(shù)據(jù)存儲格式,常被用于數(shù)據(jù)交換和存儲。但當(dāng)需要對數(shù)據(jù)進行分析、生成報表,或者將數(shù)據(jù)分享給其他人時,Excel 格式往往更具優(yōu)勢。它不僅易于操作,還支持更多的格式化選項,適合做進一步的數(shù)據(jù)處理和展示。
本篇文章將分享幾種基于 Java 的 CSV 轉(zhuǎn) Excel 方法,幫助你在開發(fā)中更高效地實現(xiàn)這種常見的數(shù)據(jù)轉(zhuǎn)換操作。
安裝依賴
在開始編寫代碼之前,你需要引入相關(guān)的 Java 庫。我們將使用一個常見的 Spire.XLS 庫來實現(xiàn) CSV 轉(zhuǎn) Excel 操作。以下是 Maven 配置示例:
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls</artifactId>
<version>15.10.5</version>
</dependency>
</dependencies>
添加這個依賴后,你就可以開始使用相應(yīng)的 API 來操作 Excel 文件了。
示例一:簡單的 CSV 轉(zhuǎn) Excel
對于許多場景,簡單地將 CSV 文件轉(zhuǎn)換成 Excel 就能滿足需求。這里,我們展示了一個基礎(chǔ)的實現(xiàn)方法,只需幾行代碼就能完成任務(wù)。
import com.spire.xls.*;
public class CsvToXlsx {
public static void main(String[] args) {
Workbook workbook = new Workbook();
workbook.loadFromFile("數(shù)據(jù).csv", ","); // 加載CSV文件
workbook.saveToFile("輸出.xlsx", ExcelVersion.Version2013); // 保存為Excel文件
}
}
代碼解析
workbook.loadFromFile("數(shù)據(jù).csv", ",");:加載 CSV 文件,指定逗號為分隔符。workbook.saveToFile("輸出.xlsx", ExcelVersion.Version2013);:將數(shù)據(jù)保存為 Excel 格式。
這種方法適用于那些只需要快速轉(zhuǎn)換文件格式的場景,不涉及復(fù)雜的格式化需求。
示例二:格式化 Excel 文件
如果你希望在轉(zhuǎn)換過程中對 Excel 文件進行格式化操作,比如設(shè)置表頭樣式或調(diào)整列寬等,以下示例可以提供一個更完整的解決方案。
import com.spire.xls.*;
public class CsvToXlsx {
public static void main(String[] args) {
Workbook workbook = new Workbook();
workbook.loadFromFile("數(shù)據(jù).csv", ","); // 加載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); // 設(shè)置表頭樣式
}
// 格式化數(shù)字列
CellStyle numStyle = workbook.getStyles().addStyle("Numbers");
numStyle.setNumberFormat("#,##0.00");
sheet.getCellRange("B2:B100").setStyle(numStyle); // 設(shè)置數(shù)字格式
// 自動調(diào)整列寬
for (int i = 1; i <= sheet.getLastRow(); i++) {
sheet.autoFitColumn(i); // 自動調(diào)整列寬
}
workbook.saveToFile("格式化輸出.xlsx", ExcelVersion.Version2013); // 保存為Excel文件
}
}
代碼解析
- 格式化表頭 :通過設(shè)置表頭的字體加粗并改變背景色,使其更加突出。
- 數(shù)字列格式化 :為數(shù)字列指定了特定的格式,例如帶千分位和兩位小數(shù)。
- 自動調(diào)整列寬 :自動調(diào)整列寬,使得數(shù)據(jù)在 Excel 中能夠合理顯示,不會出現(xiàn)列過窄的情況。
這種方法適合需要進一步美化數(shù)據(jù)和確保數(shù)據(jù)展示效果的場景。
示例三:批量處理多個 CSV 文件
有時候,我們需要將多個 CSV 文件合并為一個 Excel 文件。這種需求在處理大量數(shù)據(jù)時尤其常見。以下示例展示了如何批量處理多個 CSV 文件,并將它們合并到一個 Excel 文件中。
import com.spire.xls.*;
import java.io.File;
public class CsvToXlsx {
public static void main(String[] args) {
// 獲取 CSV 文件夾中的所有文件
File[] csvFiles = new File("CSVs/").listFiles((dir, name) -> name.endsWith(".csv"));
// 創(chuàng)建一個新的工作簿,并清空所有工作表
Workbook workbook = new Workbook();
workbook.getWorksheets().clear();
for (File csv : csvFiles) {
// 加載 CSV 文件
Workbook temp = new Workbook();
temp.loadFromFile(csv.getAbsolutePath(), ",");
// 將 CSV 文件添加到工作簿的一個工作表中
workbook.getWorksheets().addCopy(temp.getWorksheets().get(0));
}
// 保存合并后的 Excel 文件
workbook.saveToFile("合并輸出.xlsx", ExcelVersion.Version2016);
}
}
代碼解析
- 批量處理 CSV 文件 :通過獲取指定文件夾下所有 CSV 文件,并逐個加載它們。
- 合并工作表 :將每個 CSV 文件的內(nèi)容作為新的工作表添加到同一個工作簿中。
- 保存合并結(jié)果 :最終,將所有 CSV 文件合并后的 Excel 文件保存為一個新的文件。
這種方法非常適合需要處理多個 CSV 文件并將它們合并為一個 Excel 文件的場景。
總結(jié)
通過以上幾個示例,我們展示了如何在 Java 中高效地將 CSV 文件轉(zhuǎn)換為 Excel 文件。從簡單的轉(zhuǎn)換到格式化操作,再到批量處理多個文件,所有這些操作都可以輕松完成。根據(jù)不同的需求,你可以選擇最適合的實現(xiàn)方式。
到此這篇關(guān)于Java高效實現(xiàn)CSV轉(zhuǎn)Excel的三種方法詳解的文章就介紹到這了,更多相關(guān)Java CSV轉(zhuǎn)Excel內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java使用Spire.XLS?for?Java實現(xiàn)Excel與CSV的相互轉(zhuǎn)換
- 使用Java將CSV文件轉(zhuǎn)換為格式化的Excel文件
- 使用Java實現(xiàn)將Excel工作表轉(zhuǎn)換為CSV格式
- Java輕松實現(xiàn)Excel與CSV格式互轉(zhuǎn)(含批量轉(zhuǎn)換)
- 使用Java高效將CSV轉(zhuǎn)換為Excel的實現(xiàn)方法
- 利用Java提取PDF表格到文本、CSV及excel工作表
- 利用反射實現(xiàn)Excel和CSV 轉(zhuǎn)換為Java對象功能
- Java實現(xiàn)將CSV轉(zhuǎn)為Excel的示例代碼
相關(guān)文章
Java中實現(xiàn)Comparable和Comparator對象比較
這篇文章主要針對Java中Comparable和Comparator對象進行比較,感興趣的小伙伴們可以參考一下2016-02-02
SpringBoot手寫RestTemplate攔截器鏈,掌控HTTP請求實踐
本文介紹了在Spring項目中使用RestTemplate時遇到的問題及解決方案,通過自定義攔截器鏈來實現(xiàn)請求的統(tǒng)一處理,包括添加認(rèn)證Token、記錄請求日志、設(shè)置超時時間、實現(xiàn)失敗重試等,關(guān)鍵點在于攔截器鏈的順序和響應(yīng)流的處理,以及確保攔截器的線程安全2025-12-12
SpringBoot中的@Conditional?注解的使用
@Conditional是Spring4新提供的注解,它的作用是按照一定的條件進行判斷,滿足條件的才給容器注冊Bean,本文主要介紹了SpringBoot中的@Conditional?注解的使用2024-01-01
SpringBoot實現(xiàn)TCP連接并進行數(shù)據(jù)互傳的方法
本文詳細介紹了微服務(wù)架構(gòu)中的翻譯組件使用場景,以及多種開源翻譯組件的解決方案,文中分析了國內(nèi)外多個翻譯服務(wù)如百度翻譯、谷歌翻譯等,以及如何在微服務(wù)項目中集成這些翻譯組件,感興趣的朋友跟隨小編一起看看吧2024-11-11
淺談DetachedCriteria和Criteria的使用方法(必看)
下面小編就為大家?guī)硪黄獪\談DetachedCriteria和Criteria的使用方法(必看)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05

