Java實(shí)現(xiàn)TXT轉(zhuǎn)Excel并讀取Excel內(nèi)容到List集合的完整代碼
依賴引入
首先,如果你使用的是 Maven 項(xiàng)目,需要在 ??pom.xml??? 中添加 ??EasyExcel?? 的依賴:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.1.1</version>
</dependency>
代碼實(shí)現(xiàn)
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;
// 定義數(shù)據(jù)類,用于存儲(chǔ)每行數(shù)據(jù)
// 這個(gè)類用于封裝從 txt 文件中讀取的每行內(nèi)容
// 每個(gè) TxtData 對(duì)象代表 txt 文件中的一行
class TxtData {
// 存儲(chǔ) txt 文件每行的內(nèi)容
private String content;
// 構(gòu)造函數(shù),用于初始化 content 屬性
public TxtData(String content) {
this.content = content;
}
// 獲取 content 屬性的值
public String getContent() {
return content;
}
// 設(shè)置 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 {
// 調(diào)用 readTxtFile 方法將 txt 文件內(nèi)容轉(zhuǎn)換為 List<TxtData>
List<TxtData> txtDataList = readTxtFile(txtFilePath);
// 調(diào)用 writeToExcel 方法將 List<TxtData> 寫入 excel 文件
writeToExcel(txtDataList, excelFilePath);
// 調(diào)用 readExcelFile 方法從 excel 文件讀取內(nèi)容到 List<TxtData>
List<TxtData> excelDataList = readExcelFile(excelFilePath);
// 遍歷從 excel 讀取的數(shù)據(jù)列表
for (TxtData data : excelDataList) {
// 打印每個(gè) TxtData 對(duì)象的內(nèi)容
System.out.println(data.getContent());
}
} catch (IOException e) {
// 捕獲并打印可能出現(xiàn)的 IO 異常
e.printStackTrace();
}
}
// 讀取 txt 文件內(nèi)容到 List<TxtData>
private static List<TxtData> readTxtFile(String txtFilePath) throws IOException {
// 創(chuàng)建一個(gè)空的 List 用于存儲(chǔ) TxtData 對(duì)象
List<TxtData> txtDataList = new ArrayList<>();
// 使用 try-with-resources 語句創(chuàng)建 BufferedReader 來讀取 txt 文件
try (BufferedReader reader = new BufferedReader(new FileReader(txtFilePath))) {
String line;
// 逐行讀取 txt 文件,直到文件末尾
while ((line = reader.readLine()) != null) {
// 將每行內(nèi)容封裝成 TxtData 對(duì)象并添加到列表中
txtDataList.add(new TxtData(line));
}
}
// 返回存儲(chǔ)了 txt 文件內(nèi)容的 List
return txtDataList;
}
// 將 List<TxtData> 寫入 excel 文件
private static void writeToExcel(List<TxtData> dataList, String excelFilePath) {
// 使用 EasyExcel 的 write 方法創(chuàng)建一個(gè)寫入器
// 指定寫入的文件路徑和數(shù)據(jù)類型
// 然后指定工作表名稱為 "Sheet1"
// 最后調(diào)用 doWrite 方法將數(shù)據(jù)列表寫入 excel 文件
EasyExcel.write(excelFilePath, TxtData.class).sheet("Sheet1").doWrite(dataList);
}
// 從 excel 文件讀取內(nèi)容到 List<TxtData>
private static List<TxtData> readExcelFile(String excelFilePath) {
// 創(chuàng)建一個(gè)空的 List 用于存儲(chǔ)從 excel 文件讀取的數(shù)據(jù)
List<TxtData> dataList = new ArrayList<>();
// 使用 EasyExcel 的 read 方法創(chuàng)建一個(gè)讀取器構(gòu)建器
// 指定要讀取的文件路徑和數(shù)據(jù)類型
ExcelReaderBuilder readerBuilder = EasyExcel.read(excelFilePath, TxtData.class, null);
// 從讀取器構(gòu)建器創(chuàng)建一個(gè)工作表讀取器構(gòu)建器
ExcelReaderSheetBuilder sheetBuilder = readerBuilder.sheet();
// 調(diào)用 doReadSync 方法同步讀取 excel 文件的內(nèi)容到 List 中
dataList = sheetBuilder.doReadSync();
// 返回存儲(chǔ)了 excel 文件內(nèi)容的 List
return dataList;
}
}
代碼解釋
??TxtData?? 類
這個(gè)類是一個(gè)簡(jiǎn)單的 JavaBean,用于封裝從 ??txt??? 文件中讀取的每行內(nèi)容。它包含一個(gè) ??content??? 屬性,以及對(duì)應(yīng)的 getter 和 setter 方法,還有一個(gè)構(gòu)造函數(shù)用于初始化 ??content?? 屬性。
??readTxtFile?? 方法
該方法接受一個(gè) ??txt??? 文件的路徑作為參數(shù),使用 ??BufferedReader??? 逐行讀取 ??txt??? 文件的內(nèi)容。每讀取一行,就將其封裝成一個(gè) ??TxtData??? 對(duì)象,并添加到 ??List<TxtData>?? 中。最后返回這個(gè)列表。
??writeToExcel?? 方法
該方法接受一個(gè) ??List<TxtData>??? 和一個(gè) ??excel??? 文件的路徑作為參數(shù)。使用 ??EasyExcel??? 的 ??write??? 方法創(chuàng)建一個(gè)寫入器,指定寫入的文件路徑和數(shù)據(jù)類型,然后指定工作表名稱為 "Sheet1",最后調(diào)用 ??doWrite??? 方法將數(shù)據(jù)列表寫入 ??excel?? 文件。
??readExcelFile?? 方法
該方法接受一個(gè) ??excel??? 文件的路徑作為參數(shù)。使用 ??EasyExcel??? 的 ??read??? 方法創(chuàng)建一個(gè)讀取器構(gòu)建器,指定要讀取的文件路徑和數(shù)據(jù)類型。然后從讀取器構(gòu)建器創(chuàng)建一個(gè)工作表讀取器構(gòu)建器,調(diào)用 ??doReadSync??? 方法同步讀取 ??excel??? 文件的內(nèi)容到 ??List<TxtData>?? 中,并返回這個(gè)列表。
??main?? 方法
這是程序的入口點(diǎn),它依次調(diào)用 ??readTxtFile???、??writeToExcel??? 和 ??readExcelFile??? 方法,完成 ??txt??? 文件到 ??excel??? 文件的轉(zhuǎn)換,并將 ??excel??? 文件內(nèi)容讀取到 ??List??? 中,最后打印出 ??List?? 中的內(nèi)容。
注意事項(xiàng)
請(qǐng)確保將 ??txtFilePath??? 和 ??excelFilePath??? 替換為你實(shí)際的文件路徑。如果文件路徑不存在或文件無法訪問,可能會(huì)拋出 ??IOException?? 異常。
通過以上步驟,你就可以使用 Java 代碼將 ??txt??? 文件轉(zhuǎn)換為 ??excel??? 文件,并將 ??excel??? 文件內(nèi)容讀取到 ??List?? 集合中了。
到此這篇關(guān)于Java實(shí)現(xiàn)TXT轉(zhuǎn)Excel并讀取Excel內(nèi)容到List集合的完整代碼的文章就介紹到這了,更多相關(guān)Java TXT轉(zhuǎn)Excel并讀取到List內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
spring mvc中@RequestBody注解的作用說明
這篇文章主要介紹了spring mvc中@RequestBody注解的作用說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
Java中l(wèi)ength,length(),size()詳解及區(qū)別
這篇文章主要介紹了Java中l(wèi)ength,length(),size()詳解及區(qū)別的相關(guān)資料,需要的朋友可以參考下2016-11-11
一文帶你掌握J(rèn)ava開發(fā)者如何接入并使用DeepSeek
對(duì)于Java開發(fā)者來說,將DeepSeek集成到項(xiàng)目中,可以極大地提升數(shù)據(jù)處理和分析的效率,下面小編就來為大家介紹一下具體的調(diào)用方法吧2025-03-03
Java如何獲取對(duì)象屬性及對(duì)應(yīng)值
這篇文章主要介紹了Java如何獲取對(duì)象屬性及對(duì)應(yīng)值,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
淺析Java迭代器Iterator和Iterable的區(qū)別
Java語言中,Iterator和Iterable都是用來遍歷集合類數(shù)據(jù)結(jié)構(gòu)的接口,雖然它們有很多相似的地方,但在具體實(shí)現(xiàn)中卻有著一些不同之處,本文將詳細(xì)分析它們的區(qū)別,并提供相應(yīng)的代碼示例,需要的朋友可以參考下2023-07-07

