Java实现TXT转Excel并读取Excel内容到List集合的完整代码

 更新时间:2025年07月15日 10:31:12   作者:自由的疯  
在Java开发中,我们经常会遇到文件格式转换的需求,比如将txt​​​文件转换为​​excel​​​文件,并且可能需要进一步处理​​excel文件中的数据,本文将详细介绍如何使用 Java 代码完成这个任务,我们会使用 ​​EasyExcel​​​ 库来实现 ​​excel​​ 文件的读写操作

依赖引入

首先,如果你使用的是 Maven 项目,需要在 ​​pom.xml​​​ 中添加 ​​EasyExcel​​ 的依赖:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>easyexcel</artifactId>
    <version>3.1.1</version>
</dependency>

代码实现

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.read.builder.ExcelReaderBuilder;
import com.alibaba.excel.read.builder.ExcelReaderSheetBuilder;

import java.io.*;
import java.util.ArrayList;
import java.util.List;

// 定义数据类,用于存储每行数据
// 这个类用于封装从 txt 文件中读取的每行内容
// 每个 TxtData 对象代表 txt 文件中的一行
class TxtData {
    // 存储 txt 文件每行的内容
    private String content;

    // 构造函数,用于初始化 content 属性
    public TxtData(String content) {
        this.content = content;
    }

    // 获取 content 属性的值
    public String getContent() {
        return content;
    }

    // 设置 content 属性的值
    public void setContent(String content) {
        this.content = content;
    }
}

public class TxtToExcelConverter {
    public static void main(String[] args) {
        // 定义 txt 文件的路径
        String txtFilePath = "input.txt";
        // 定义生成的 excel 文件的路径
        String excelFilePath = "output.xlsx";

        try {
            // 调用 readTxtFile 方法将 txt 文件内容转换为 List<TxtData>
            List<TxtData> txtDataList = readTxtFile(txtFilePath);
            // 调用 writeToExcel 方法将 List<TxtData> 写入 excel 文件
            writeToExcel(txtDataList, excelFilePath);
            // 调用 readExcelFile 方法从 excel 文件读取内容到 List<TxtData>
            List<TxtData> excelDataList = readExcelFile(excelFilePath);

            // 遍历从 excel 读取的数据列表
            for (TxtData data : excelDataList) {
                // 打印每个 TxtData 对象的内容
                System.out.println(data.getContent());
            }
        } catch (IOException e) {
            // 捕获并打印可能出现的 IO 异常
            e.printStackTrace();
        }
    }

    // 读取 txt 文件内容到 List<TxtData>
    private static List<TxtData> readTxtFile(String txtFilePath) throws IOException {
        // 创建一个空的 List 用于存储 TxtData 对象
        List<TxtData> txtDataList = new ArrayList<>();
        // 使用 try-with-resources 语句创建 BufferedReader 来读取 txt 文件
        try (BufferedReader reader = new BufferedReader(new FileReader(txtFilePath))) {
            String line;
            // 逐行读取 txt 文件,直到文件末尾
            while ((line = reader.readLine()) != null) {
                // 将每行内容封装成 TxtData 对象并添加到列表中
                txtDataList.add(new TxtData(line));
            }
        }
        // 返回存储了 txt 文件内容的 List
        return txtDataList;
    }

    // 将 List<TxtData> 写入 excel 文件
    private static void writeToExcel(List<TxtData> dataList, String excelFilePath) {
        // 使用 EasyExcel 的 write 方法创建一个写入器
        // 指定写入的文件路径和数据类型
        // 然后指定工作表名称为 "Sheet1"
        // 最后调用 doWrite 方法将数据列表写入 excel 文件
        EasyExcel.write(excelFilePath, TxtData.class).sheet("Sheet1").doWrite(dataList);
    }

    // 从 excel 文件读取内容到 List<TxtData>
    private static List<TxtData> readExcelFile(String excelFilePath) {
        // 创建一个空的 List 用于存储从 excel 文件读取的数据
        List<TxtData> dataList = new ArrayList<>();
        // 使用 EasyExcel 的 read 方法创建一个读取器构建器
        // 指定要读取的文件路径和数据类型
        ExcelReaderBuilder readerBuilder = EasyExcel.read(excelFilePath, TxtData.class, null);
        // 从读取器构建器创建一个工作表读取器构建器
        ExcelReaderSheetBuilder sheetBuilder = readerBuilder.sheet();
        // 调用 doReadSync 方法同步读取 excel 文件的内容到 List 中
        dataList = sheetBuilder.doReadSync();
        // 返回存储了 excel 文件内容的 List
        return dataList;
    }
}

代码解释

​​TxtData​​ 类

这个类是一个简单的 JavaBean,用于封装从 ​​txt​​​ 文件中读取的每行内容。它包含一个 ​​content​​​ 属性,以及对应的 getter 和 setter 方法,还有一个构造函数用于初始化 ​​content​​ 属性。

​​readTxtFile​​ 方法

该方法接受一个 ​​txt​​​ 文件的路径作为参数,使用 ​​BufferedReader​​​ 逐行读取 ​​txt​​​ 文件的内容。每读取一行,就将其封装成一个 ​​TxtData​​​ 对象,并添加到 ​​List<TxtData>​​ 中。最后返回这个列表。

​​writeToExcel​​ 方法

该方法接受一个 ​​List<TxtData>​​​ 和一个 ​​excel​​​ 文件的路径作为参数。使用 ​​EasyExcel​​​ 的 ​​write​​​ 方法创建一个写入器,指定写入的文件路径和数据类型,然后指定工作表名称为 "Sheet1",最后调用 ​​doWrite​​​ 方法将数据列表写入 ​​excel​​ 文件。

​​readExcelFile​​ 方法

该方法接受一个 ​​excel​​​ 文件的路径作为参数。使用 ​​EasyExcel​​​ 的 ​​read​​​ 方法创建一个读取器构建器,指定要读取的文件路径和数据类型。然后从读取器构建器创建一个工作表读取器构建器,调用 ​​doReadSync​​​ 方法同步读取 ​​excel​​​ 文件的内容到 ​​List<TxtData>​​ 中,并返回这个列表。

​​main​​ 方法

这是程序的入口点,它依次调用 ​​readTxtFile​​​、​​writeToExcel​​​ 和 ​​readExcelFile​​​ 方法,完成 ​​txt​​​ 文件到 ​​excel​​​ 文件的转换,并将 ​​excel​​​ 文件内容读取到 ​​List​​​ 中,最后打印出 ​​List​​ 中的内容。

注意事项

请确保将 ​​txtFilePath​​​ 和 ​​excelFilePath​​​ 替换为你实际的文件路径。如果文件路径不存在或文件无法访问,可能会抛出 ​​IOException​​ 异常。

通过以上步骤,你就可以使用 Java 代码将 ​​txt​​​ 文件转换为 ​​excel​​​ 文件,并将 ​​excel​​​ 文件内容读取到 ​​List​​ 集合中了。

到此这篇关于Java实现TXT转Excel并读取Excel内容到List集合的完整代码的文章就介绍到这了,更多相关Java TXT转Excel并读取到List内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java多线程 volatile关键字详解

    Java多线程 volatile关键字详解

    这篇文章主要介绍了Java多线程 volatile关键字详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • Java中轻量级http开发库Unirest使用及实用技巧

    Java中轻量级http开发库Unirest使用及实用技巧

    Unirest for Java 是一个轻量级、易于使用的 HTTP 客户端库,旨在简化 Java 应用程序中的 HTTP 请求发送和响应处理,本文详细介绍它的主要特性、基本用法以及一些实用技巧,感兴趣的朋友跟随小编一起看看吧
    2025-10-10
  • java HashMap的keyset实例

    java HashMap的keyset实例

    简单地说,在keyset方法返回的set上做修改会改变原来hashmap,这也许不是你想要的,于是形成一个隐藏的bug
    2013-04-04
  • 在SpringBoot启动时执行特定代码的常见方法小结

    在SpringBoot启动时执行特定代码的常见方法小结

    本文总结了SpringBoot启动时执行代码的5种方法,涵盖@PostConstruct、CommandLineRunner、ApplicationRunner、ApplicationListener及@EventListener,各方法适用于不同场景,需要的朋友可以参考下
    2025-08-08
  • 详解如何使用MyBatis简化JDBC开发

    详解如何使用MyBatis简化JDBC开发

    JavaEE 企业级 Java 项目中的经典三层架构为表现层,业务层和持久层.MyBatis 对 JDBC 代码进行了封装,作为一款优秀的持久层框架,专门用于简化JDBC开发.本文主要介绍一下如何使用MyBatis简化JDBC开发,需要的可以参考一下
    2023-01-01
  • Java FTPClient实现文件上传下载

    Java FTPClient实现文件上传下载

    这篇文章主要为大家详细介绍了Java FTPClient实现文件上传下载的相关资料,需要的朋友可以参考下
    2016-04-04
  • Java Swing 多线程加载图片(保证顺序一致)

    Java Swing 多线程加载图片(保证顺序一致)

    这篇文章主要为大家详细介绍了Java Swing 多线程加载图片,保证顺序一致,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • Springboot传参详解

    Springboot传参详解

    这篇文章主要介绍了Springboot传参的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-11-11
  • SpringCloud Feign使用ApacheHttpClient代替默认client方式

    SpringCloud Feign使用ApacheHttpClient代替默认client方式

    这篇文章主要介绍了SpringCloud Feign使用ApacheHttpClient代替默认client方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • kibana中ES修改某个字段类型问题小结

    kibana中ES修改某个字段类型问题小结

    这篇文章主要介绍了kibana中ES修改某个字段类型问题,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06

最新评论