欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java實現(xiàn)Excel與TXT文本的高效互轉(zhuǎn)

 更新時間:2025年09月18日 08:16:16   作者:用戶372157426135  
在日常開發(fā)中,我們經(jīng)常需要在不同的數(shù)據(jù)存儲格式之間進(jìn)行轉(zhuǎn)換,本文將分享如何在 Java 中高效實現(xiàn) Excel 與 TXT 的互轉(zhuǎn),有需要的小伙伴可以了解下

在日常開發(fā)中,我們經(jīng)常需要在不同的數(shù)據(jù)存儲格式之間進(jìn)行轉(zhuǎn)換,其中 Excel 和 TXT 是最常見的兩種格式。Excel 以表格形式存儲數(shù)據(jù),支持豐富的格式、公式和多種數(shù)據(jù)類型,適合報表生成、統(tǒng)計分析等場景。TXT 是純文本格式,簡單輕量,便于跨平臺傳輸、日志存儲或數(shù)據(jù)交換。

在實際項目中,經(jīng)常需要將 Excel 文件導(dǎo)出為 TXT,或者將 TXT 導(dǎo)入 Excel 進(jìn)行進(jìn)一步處理。例如,日志分析系統(tǒng)可能需要將 Excel 報表轉(zhuǎn)換為 TXT 供腳本處理;數(shù)據(jù)采集系統(tǒng)可能需要將 TXT 文件整理成 Excel 便于可視化和匯總。

本文將分享如何在 Java 中高效實現(xiàn) Excel 與 TXT 的互轉(zhuǎn),并提供完整的示例代碼和操作說明。

一、準(zhǔn)備工作

在開始編寫代碼之前,需要完成以下準(zhǔn)備:

準(zhǔn)備示例文件

  • Excel 文件(.xlsx.xls)用于導(dǎo)出 TXT 測試。
  • TXT 文件,每行用固定分隔符(如空格或制表符)分隔,用于導(dǎo)入 Excel 測試。

理解數(shù)據(jù)結(jié)構(gòu)

Excel 數(shù)據(jù)按行列組織,每個單元格對應(yīng)一個字段;TXT 文件每行是一個記錄,通過分隔符拆分字段。在互轉(zhuǎn)時,需要保證字段順序和數(shù)量匹配。

庫依賴安裝

本文使用的庫是 Spire.XLS for Java,它可以直接讀取、寫入和轉(zhuǎn)換 Excel .xls 和 .xlsx等文件,無需依賴 Microsoft Excel,本地或服務(wù)器環(huán)境都可以使用。

如果使用 Maven,可以在 pom.xml 中添加如下依賴:

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
    </repository>
</repositories>
<dependency>
    <groupId>e-iceblue</groupId>
    <artifactId>spire.xls</artifactId>
    <version>13.9.1</version>
</dependency>

二、Excel 轉(zhuǎn) TXT

Spire.XLS 提供了直接將工作表保存為 TXT 文件的方法,無需手動遍歷單元格,同時可以指定列分隔符和字符編碼。

示例代碼

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

public class ExcelToTxt {
    public static void main(String[] args) {
        // 創(chuàng)建 Workbook 對象,用于操作 Excel 文件
        Workbook workbook = new Workbook();

        // 加載 Excel 文件
        workbook.loadFromFile("sample.xlsx");

        // 獲取第一個工作表
        Worksheet worksheet = workbook.getWorksheets().get(0);

        // 設(shè)置字符編碼為 UTF-8,確保中文和特殊字符正確顯示
        Charset charset = Charset.forName("UTF-8");

        // 將工作表保存為 TXT 文件
        // 第二個參數(shù) " " 表示列之間使用空格分隔,也可以改為 "\t" 或 "," 等
        worksheet.saveToFile("ExcelToTxt.txt", " ", charset);

        // 提示導(dǎo)出完成
        System.out.println("Excel 導(dǎo)出 TXT 完成");
    }
}

代碼說明:

  • Worksheet.saveToFile 可直接將工作表導(dǎo)出為文本文件,不需要循環(huán)讀取單元格。
  • 第二個參數(shù)可以設(shè)置列間分隔符,比如空格 " " 或制表符 "\t"。
  • 指定 UTF-8 編碼可確保中文或特殊字符不會出現(xiàn)亂碼。
  • 這種方式適合數(shù)據(jù)量較大時快速導(dǎo)出。

三、TXT 轉(zhuǎn) Excel

將 TXT 導(dǎo)入 Excel 時,需要按行讀取文本,拆分字段,然后寫入對應(yīng)單元格。

示例代碼

import com.spire.xls.*;
import java.io.*;

public class TxtToExcel {
    public static void main(String[] args) {
        // 創(chuàng)建 Workbook 對象,用于寫入 Excel
        Workbook workbook = new Workbook();

        // 獲取第一個工作表
        Worksheet sheet = workbook.getWorksheets().get(0);

        // 使用 BufferedReader 按行讀取 TXT 文件
        try (BufferedReader reader = new BufferedReader(new FileReader("input.txt"))) {
            String line;
            int rowIndex = 0; // 當(dāng)前寫入的行號

            // 逐行讀取 TXT 文件
            while ((line = reader.readLine()) != null) {
                // 按空格拆分每行的字段
                String[] values = line.split(" ");

                // 將拆分后的字段寫入 Excel 單元格
                for (int colIndex = 0; colIndex < values.length; colIndex++) {
                    sheet.getCellRange(rowIndex, colIndex).setText(values[colIndex]);
                }

                // 行號遞增,寫入下一行
                rowIndex++;
            }

            // 保存 Excel 文件,指定 Excel 版本為 2013
            workbook.saveToFile("output.xlsx", ExcelVersion.Version2013);

            // 提示導(dǎo)入完成
            System.out.println("TXT 導(dǎo)入 Excel 完成");
        } catch (IOException e) {
            // 打印異常信息
            e.printStackTrace();
        }
    }
}

代碼說明:

  • 使用 BufferedReader 按行讀取,可以處理較大文件而不會一次性占用過多內(nèi)存。
  • 拆分字段時,分隔符要與生成 TXT 文件時一致,確保數(shù)據(jù)列正確對應(yīng)。
  • 使用 setText 寫入單元格,操作簡單直觀。

四、性能與使用建議

在處理 Excel 與 TXT 轉(zhuǎn)換時,可以注意以下幾點:

1.緩沖讀寫

使用 BufferedReaderBufferedWriter 進(jìn)行文件讀寫,提高效率。

2.統(tǒng)一分隔符

導(dǎo)出和導(dǎo)入使用相同的分隔符,避免列錯位。

3.統(tǒng)一編碼

確保文件讀寫編碼一致,例如 UTF-8,防止中文或特殊字符亂碼。

4.大數(shù)據(jù)量處理

對于數(shù)據(jù)量非常大時,可以按批次處理或拆分文件,減少內(nèi)存壓力。

五、小結(jié)

本文展示了在 Java 中實現(xiàn) Excel 與 TXT 文件互轉(zhuǎn)的方法:

  • Excel 轉(zhuǎn) TXT:使用 Worksheet.saveToFile 可快速導(dǎo)出 TXT,無需手動循環(huán)單元格。
  • TXT 轉(zhuǎn) Excel:逐行讀取 TXT,并按列寫入單元格,操作直觀。

通過這些方法,可以在日常開發(fā)中方便地進(jìn)行報表導(dǎo)出、日志分析或數(shù)據(jù)遷移,同時保證數(shù)據(jù)準(zhǔn)確性和編碼正確性。

到此這篇關(guān)于Java實現(xiàn)Excel與TXT文本的高效互轉(zhuǎn)的文章就介紹到這了,更多相關(guān)Java Excel與TXT互轉(zhuǎn)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Spring?Security怎么從數(shù)據(jù)庫加載我們的用戶

    詳解Spring?Security怎么從數(shù)據(jù)庫加載我們的用戶

    這篇文章主要為大家介紹了Spring?Security怎么從數(shù)據(jù)庫加載我們的用戶示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • 深入理解Java中的volatile關(guān)鍵字(總結(jié)篇)

    深入理解Java中的volatile關(guān)鍵字(總結(jié)篇)

    volatile這個關(guān)鍵字,不僅僅在Java語言中有,在很多語言中都有的,而且其用法和語義也都是不盡相同的。這篇文章主要介紹了Java中的volatile關(guān)鍵字,需要的朋友可以參考下
    2018-10-10
  • Fluent Mybatis實現(xiàn)環(huán)境隔離和租戶隔離

    Fluent Mybatis實現(xiàn)環(huán)境隔離和租戶隔離

    我們在實際的業(yè)務(wù)開發(fā)中,經(jīng)常會碰到環(huán)境邏輯隔離和租戶數(shù)據(jù)邏輯隔離的問題。本文就詳細(xì)的來介紹一下,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Java自定義協(xié)議報文封裝 添加Crc32校驗的實例

    Java自定義協(xié)議報文封裝 添加Crc32校驗的實例

    下面小編就為大家分享一篇Java自定義協(xié)議報文封裝 添加Crc32校驗的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • @JsonSerialize序列化注解的使用

    @JsonSerialize序列化注解的使用

    這篇文章主要介紹了@JsonSerialize序列化注解的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Spring?IOC容器基于XML外部屬性文件的Bean管理

    Spring?IOC容器基于XML外部屬性文件的Bean管理

    這篇文章主要為大家介紹了Spring?IOC容器Bean管理XML外部屬性文件,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • 基于Java中兩種jersey文件上傳方式

    基于Java中兩種jersey文件上傳方式

    這篇文章主要介紹了基于Java中兩種jersey文件上傳方式的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • java利用SMB讀取遠(yuǎn)程文件的方法

    java利用SMB讀取遠(yuǎn)程文件的方法

    這篇文章主要為大家詳細(xì)介紹了java利用SMB讀取遠(yuǎn)程文件的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • SpringCloud中Sentinel基礎(chǔ)場景和異常處理方式

    SpringCloud中Sentinel基礎(chǔ)場景和異常處理方式

    這篇文章主要介紹了SpringCloud中Sentinel基礎(chǔ)場景和異常處理方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • RocketMQ消息丟失場景以及解決方法

    RocketMQ消息丟失場景以及解決方法

    這篇文章主要給大家介紹了關(guān)于RocketMQ消息丟失場景以及解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09

最新評論