最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Java實(shí)現(xiàn)將Excel工作表轉(zhuǎn)換為CSV格式

 更新時(shí)間:2025年10月30日 08:29:05   作者:Eiceblue  
在日常開發(fā)中,Excel 文件(.xls/.xlsx)是數(shù)據(jù)存儲(chǔ)和交換的常用格式,本文將介紹如何使用 Spire.XLS for Java 組件,高效實(shí)現(xiàn) Excel 文件到 CSV 格式的轉(zhuǎn)換,需要的可以了解下

在日常開發(fā)中,Excel 文件(.xls/.xlsx)是數(shù)據(jù)存儲(chǔ)和交換的常用格式,但在數(shù)據(jù)導(dǎo)入、批量處理等場(chǎng)景下,輕量且純文本的 CSV 格式更具優(yōu)勢(shì)。本文將介紹如何使用 Spire.XLS for Java 組件,高效實(shí)現(xiàn) Excel 文件到 CSV 格式的轉(zhuǎn)換,涵蓋環(huán)境準(zhǔn)備、核心步驟、完整代碼及關(guān)鍵說明,幫助開發(fā)者快速落地相關(guān)需求。

引入依賴(Maven方式)

在項(xiàng)目的pom.xml文件中添加Spire.XLS的依賴配置(查詢最新版本):

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependency>
    <groupId>e-iceblue</groupId>
    <artifactId>spire.xls</artifactId>
    <version>15.10.5</version>
</dependency>

Spire.XLS for Java兼容Excel 97-2021的所有版本格式。其API設(shè)計(jì)簡潔,封裝了復(fù)雜的Excel底層邏輯,代碼簡單易懂。

Excel 轉(zhuǎn) CSV 核心實(shí)現(xiàn)步驟

Excel轉(zhuǎn)CSV的核心邏輯是:加載Excel文件 → 定位目標(biāo)工作表 → 調(diào)用轉(zhuǎn)換API保存為CSV格式。以下分 “單工作表轉(zhuǎn)換” 和 “多工作表批量轉(zhuǎn)換” 兩種場(chǎng)景展開。

場(chǎng)景1:單個(gè)工作表轉(zhuǎn)換為CSV

適用于僅需提取Excel中某一個(gè)工作表(如第一個(gè)工作表)數(shù)據(jù)的場(chǎng)景,代碼如下:

import com.spire.xls.*;
import java.nio.charset.Charset;

public class ExcelToCsvSingleSheet {
    public static void main(String[] args) {
        // 創(chuàng)建Workbook對(duì)象,加載Excel文件
        Workbook workbook = new Workbook();
        workbook.loadFromFile("E:\\PythonExcel\\產(chǎn)品.xlsx");

        // 獲取目標(biāo)工作表(索引從0開始,0表示第一個(gè)工作表)
        Worksheet worksheet = workbook.getWorksheets().get(0);
        // (可選)若已知工作表名稱,可通過名稱獲?。簑orkbook.getWorksheets().get("Sheet1")

        // 將工作表保存為CSV格式,指定輸出路徑、分隔符和編碼(UTF-8避免中文亂碼)
        worksheet.saveToFile("single_sheet.csv", ",", Charset.forName("UTF-8"));

        // 釋放資源
        workbook.dispose();
    }
}

代碼說明

  • 加載Excel文件Workbook是Spire.XLS的核心類,負(fù)責(zé)Excel文件的整體管理,loadFromFile()方法支持加載.xls和.xlsx格式;
  • 獲取工作表:通過索引(get(0))或名稱(get("Sheet1"))定位工作表,需確保索引不越界(若Excel只有1個(gè)工作表,索引最大為0);
  • 保存為CSVsaveToFile()的第三個(gè)參數(shù)指定編碼(推薦UTF-8,避免中文亂碼),若不指定編碼,默認(rèn)使用系統(tǒng)編碼(可能導(dǎo)致亂碼)。

CSV 輸出文件:

場(chǎng)景2:多工作表批量轉(zhuǎn)換為CSV

若Excel文件包含多個(gè)工作表,需將每個(gè)工作表單獨(dú)轉(zhuǎn)為CSV(如Sheet1.csvSheet2.csv),可通過遍歷工作表實(shí)現(xiàn)批量轉(zhuǎn)換:

import com.spire.xls.*;
import java.nio.charset.Charset;

public class ExcelToCsvMultiSheets {
    public static void main(String[] args) {
        // 加載Excel文件
        Workbook workbook = new Workbook();
        workbook.loadFromFile("E:\\PythonExcel\\數(shù)據(jù)表.xlsx");

        // 遍歷所有工作表
        for (int i = 0; i < workbook.getWorksheets().getCount(); i++) {
            Worksheet worksheet = workbook.getWorksheets().get(i);
            // 獲取工作表名稱,作為CSV文件名的一部分
            String sheetName = worksheet.getName();
            // 定義CSV輸出路徑
            String csvOutputPath = "Output/" + sheetName + ".csv";
            // 保存為CSV
            worksheet.saveToFile(csvOutputPath,",", Charset.forName("UTF-8"));
        }

        // 釋放資源
        workbook.dispose();
    }
}

自定義CSV分隔符:部分場(chǎng)景需用分號(hào)(;)或制表符(\t)作為 CSV 分隔符,可通過saveToFile()的第二個(gè)參數(shù)指定

關(guān)鍵注意事項(xiàng)

  • 編碼問題:CSV 文件的編碼需與后續(xù)使用場(chǎng)景匹配(如導(dǎo)入數(shù)據(jù)庫時(shí)需與數(shù)據(jù)庫編碼一致)。若出現(xiàn)中文亂碼,優(yōu)先嘗試UTF-8編碼;
  • 數(shù)據(jù)格式保留:轉(zhuǎn)換為 CSV 后,會(huì)以 Excel 中“顯示值”保存(如 “12.34%” 會(huì)轉(zhuǎn)為 “12.34%”,而非原始數(shù)值0.1234);
  • 空值與空白行:Spire.XLS 會(huì)保留 Excel 中的空單元格(CSV 中以 “,” 分隔空值),但會(huì)自動(dòng)過濾工作表末尾的空白行(無數(shù)據(jù)的行);

Spire.XLS for Java 為 Excel 到 CSV 的轉(zhuǎn)換提供了簡潔、高效的解決方案,開發(fā)者無需關(guān)注 Excel 底層解析細(xì)節(jié),僅通過少量 API 即可完成轉(zhuǎn)換需求。在實(shí)際使用中,需注意編碼匹配、數(shù)據(jù)格式保留等問題。

到此這篇關(guān)于使用Java實(shí)現(xiàn)將Excel工作表轉(zhuǎn)換為CSV格式的文章就介紹到這了,更多相關(guān)Java Excel工作表轉(zhuǎn)CSV內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

武陟县| 新民市| 电白县| 涪陵区| 绥阳县| 澄迈县| 苍南县| 兰西县| 苍南县| 福贡县| 古丈县| 桐城市| 泸西县| 成武县| 海原县| 公安县| 临城县| 广德县| 徐闻县| 神池县| 三明市| 巩义市| 祁阳县| 平顶山市| 即墨市| 陈巴尔虎旗| 海丰县| SHOW| 肃宁县| 蒙城县| 沭阳县| 青岛市| 南和县| 苏尼特左旗| 集安市| 喀什市| 茶陵县| 梁河县| 玉山县| 翼城县| 新兴县|