来自TXT的Apache POI Excel副本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了来自TXT的Apache POI Excel副本相关的知识,希望对你有一定的参考价值。
我有问题,我想请求你的帮助。问题是,我正在尝试将文本文件(.txt)中的数据放入带有Apache POI的Excel工作表中。我从txt复制所有数据都没有问题,但是当我粘贴到选中的工作表单元格时,它会包含我选择的单元格内的所有值(当然,这就是我命令要做的)。
当我手动执行此操作时,打开txt文件,创建新的Excel文件,ctrl + c txt文件,excel工作表上的ctrl + v,它会在所有选项卡中找到正确的位置,就像我希望的那样。 txt文件是tabbed,因此excel知道它需要在另一列上。我没有任何问题,根本没有编码,因为没有错误或其他东西,并且手动我可以通过3种不同的方式来完成它。
我用来从txt复制的代码。
String all= "";
try (BufferedReader br = new BufferedReader(new FileReader("C:\arquivo.txt"))) {
String sCurrentLine;
while ((sCurrentLine = br.readLine()) != null) {
all = all + "
" + sCurrentLine;
}
} catch (IOException e) {
e.printStackTrace();
}
用于将值设置为excel的代码。
String fileName = "C:/Testing.xls";
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("Teste");
HSSFRow row = sheet.createRow((short) 0);
row.createCell(0).setAsActiveCell();
FileOutputStream fileOut = new FileOutputStream(fileName);
workbook.write(fileOut);
fileOut.close();
我想知道的是:有什么方法可以做到这一点?
您需要解析输入文本,然后根据该文本包含的内容创建行和单元格。 尝试这样的事情:
LinkedList<String[]> text_lines = new LinkedList<>();
try (BufferedReader br = new BufferedReader(new FileReader("C:\arquivo.txt"))) {
String sCurrentLine;
while ((sCurrentLine = br.readLine()) != null) {
text_lines.add(sCurrentLine.split("\t"));
}
} catch (IOException e) {
e.printStackTrace();
}
String fileName = "C:/Testing.xls";
Workbook workbook = new HSSFWorkbook();
Sheet sheet = workbook.createSheet("Teste");
int row_num = 0;
for(String[] line : text_lines){
Row row = sheet.createRow(row_num++);
int cell_num = 0;
for(String value : line){
Cell cell = row.createCell(cell_num++);
cell.setCellValue(value);
}
}
FileOutputStream fileOut = new FileOutputStream(fileName);
workbook.write(fileOut);
fileOut.close();
这将读取文本文件的每一行到由制表符分割的String[]
数组(这是Excel中的默认分隔符)并放入有序列表中。您可以将split
函数中的正则表达式模式更改为适合您文本的模式。第二部分遍历String数组列表,并将每个列表写入一行,将列表的每个块(单词,句子,数字......)写入其自己的单元格。
使用选项卡式分隔符“ t”从文本文件中分割每一行,并写入适当的单元格值。分享您的代码,以便您获得更多帮助。
以上是关于来自TXT的Apache POI Excel副本的主要内容,如果未能解决你的问题,请参考以下文章
JAVA EXCEL 导入jar报错The package org.apache.poi.hssf.usermodel is accessible from more than one module: