java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java TXT转Excel并读取到List

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

作者:自由的疯

在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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文