Java实现Excel与TXT文本的高效互转

 更新时间:2025年09月18日 08:16:16   作者:用户372157426135  
在日常开发中,我们经常需要在不同的数据存储格式之间进行转换,本文将分享如何在 Java 中高效实现 Excel 与 TXT 的互转,有需要的小伙伴可以了解下

在日常开发中,我们经常需要在不同的数据存储格式之间进行转换,其中 Excel 和 TXT 是最常见的两种格式。Excel 以表格形式存储数据,支持丰富的格式、公式和多种数据类型,适合报表生成、统计分析等场景。TXT 是纯文本格式,简单轻量,便于跨平台传输、日志存储或数据交换。

在实际项目中,经常需要将 Excel 文件导出为 TXT,或者将 TXT 导入 Excel 进行进一步处理。例如,日志分析系统可能需要将 Excel 报表转换为 TXT 供脚本处理;数据采集系统可能需要将 TXT 文件整理成 Excel 便于可视化和汇总。

本文将分享如何在 Java 中高效实现 Excel 与 TXT 的互转,并提供完整的示例代码和操作说明。

一、准备工作

在开始编写代码之前,需要完成以下准备:

准备示例文件

  • Excel 文件(.xlsx.xls)用于导出 TXT 测试。
  • TXT 文件,每行用固定分隔符(如空格或制表符)分隔,用于导入 Excel 测试。

理解数据结构

Excel 数据按行列组织,每个单元格对应一个字段;TXT 文件每行是一个记录,通过分隔符拆分字段。在互转时,需要保证字段顺序和数量匹配。

库依赖安装

本文使用的库是 Spire.XLS for Java,它可以直接读取、写入和转换 Excel .xls 和 .xlsx等文件,无需依赖 Microsoft Excel,本地或服务器环境都可以使用。

如果使用 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 转 TXT

Spire.XLS 提供了直接将工作表保存为 TXT 文件的方法,无需手动遍历单元格,同时可以指定列分隔符和字符编码。

示例代码

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

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

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

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

        // 设置字符编码为 UTF-8,确保中文和特殊字符正确显示
        Charset charset = Charset.forName("UTF-8");

        // 将工作表保存为 TXT 文件
        // 第二个参数 " " 表示列之间使用空格分隔,也可以改为 "\t" 或 "," 等
        worksheet.saveToFile("ExcelToTxt.txt", " ", charset);

        // 提示导出完成
        System.out.println("Excel 导出 TXT 完成");
    }
}

代码说明:

  • Worksheet.saveToFile 可直接将工作表导出为文本文件,不需要循环读取单元格。
  • 第二个参数可以设置列间分隔符,比如空格 " " 或制表符 "\t"。
  • 指定 UTF-8 编码可确保中文或特殊字符不会出现乱码。
  • 这种方式适合数据量较大时快速导出。

三、TXT 转 Excel

将 TXT 导入 Excel 时,需要按行读取文本,拆分字段,然后写入对应单元格。

示例代码

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

public class TxtToExcel {
    public static void main(String[] args) {
        // 创建 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; // 当前写入的行号

            // 逐行读取 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);

            // 提示导入完成
            System.out.println("TXT 导入 Excel 完成");
        } catch (IOException e) {
            // 打印异常信息
            e.printStackTrace();
        }
    }
}

代码说明:

  • 使用 BufferedReader 按行读取,可以处理较大文件而不会一次性占用过多内存。
  • 拆分字段时,分隔符要与生成 TXT 文件时一致,确保数据列正确对应。
  • 使用 setText 写入单元格,操作简单直观。

四、性能与使用建议

在处理 Excel 与 TXT 转换时,可以注意以下几点:

1.缓冲读写

使用 BufferedReaderBufferedWriter 进行文件读写,提高效率。

2.统一分隔符

导出和导入使用相同的分隔符,避免列错位。

3.统一编码

确保文件读写编码一致,例如 UTF-8,防止中文或特殊字符乱码。

4.大数据量处理

对于数据量非常大时,可以按批次处理或拆分文件,减少内存压力。

五、小结

本文展示了在 Java 中实现 Excel 与 TXT 文件互转的方法:

  • Excel 转 TXT:使用 Worksheet.saveToFile 可快速导出 TXT,无需手动循环单元格。
  • TXT 转 Excel:逐行读取 TXT,并按列写入单元格,操作直观。

通过这些方法,可以在日常开发中方便地进行报表导出、日志分析或数据迁移,同时保证数据准确性和编码正确性。

到此这篇关于Java实现Excel与TXT文本的高效互转的文章就介绍到这了,更多相关Java Excel与TXT互转内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring事务失效场景实例详解

    Spring事务失效场景实例详解

    实际项目开发中,如果涉及到多张表操作时,为了保证业务数据的一致性,大家一般都会采用事务机制,好多小伙伴可能只是简单了解一下,遇到事务失效的情况,便会无从下手,下面这篇文章主要给大家介绍了关于Spring事务失效场景的相关资料,需要的朋友可以参考下
    2022-03-03
  • java高并发的线程中断的几种方式详解

    java高并发的线程中断的几种方式详解

    这篇文章主要介绍了Java线程中断机制几种方法及示例,向大家分享了这几种方法的介绍几代码示例,具有一定参考价值,需要的朋友可以了解下。
    2021-10-10
  • IDEA修改生成jar包名字的两种方法实现

    IDEA修改生成jar包名字的两种方法实现

    本文主要介绍了IDEA修改生成jar包名字的两种方法实现,通过简单的步骤,您可以修改项目名称并在打包时使用新的名称,具有一定的参考价值,感兴趣的可以了解下
    2023-08-08
  • 如何实现java Iterator迭代器功能

    如何实现java Iterator迭代器功能

    这篇文章主要介绍了如何实现java Iterator迭代器功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • Java中的静态代码块使用解读

    Java中的静态代码块使用解读

    本文将深入探讨静态代码块的工作原理、使用场景以及一些最佳实践,帮助你更好地理解和应用这一特性
    2025-02-02
  • MyBatis中执行相关SQL语句的方法

    MyBatis中执行相关SQL语句的方法

    本文主要介绍了MyBatis中执行相关SQL语句的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08
  • Maven中依赖冲突的排查和修复全流程指南

    Maven中依赖冲突的排查和修复全流程指南

    依赖冲突是写 Java 项目时最常见、也最烦的坑之一,特别是在大型项目、Spring Boot、多模块工程里,这篇文章会带你用最实用、最开发者视角的方法来解决 Maven 依赖冲突,有需要的可以了解下
    2025-12-12
  • 如何使用Spring Batch进行批处理任务管理

    如何使用Spring Batch进行批处理任务管理

    本文介绍了如何配置Spring Batch、如何创建批处理任务,以及如何读取和写入数据,希望通过本文的介绍,你能更好地理解和使用Spring Batch来管理批处理任务,感兴趣的朋友跟随小编一起看看吧
    2024-08-08
  • Spring IOC的相关注解运用详解

    Spring IOC的相关注解运用详解

    这篇文章主要介绍了Spring IOC的相关注解运用详解,纯注解实现IOC需要一个Java类代替xml文件,这个Java类上方需要添加@Configuration,表示该类是一个配置类,作用是代替配置文件,需要的朋友可以参考下
    2023-08-08
  • Springboot应用gradle Plugin示例详解

    Springboot应用gradle Plugin示例详解

    这篇文章主要介绍了Springboot应用gradle Plugin详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04

最新评论