依赖引入
首先,如果你使用的是 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内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!