Java Apache POI Excel从TXT复制

Java Apache POI Excel从TXT复制,java,excel,apache,apache-poi,Java,Excel,Apache,Apache Poi,我有个问题,我想请你帮忙。问题是,我正在尝试使用ApachePOI将文本文件.txt中的数据放入excel工作表。我复制txt中的所有数据没有问题,但是当我粘贴到所选的工作表单元格中时,它附带了我选择的单元格中的所有值,当然,这就是我命令执行的操作 当我手动操作时,打开txt文件,创建新的excel文件,ctrl+c txt文件,在excel工作表上ctrl+v,所有的标签都放在正确的位置,就像我希望我能做的那样。 txt文件是选项卡式的,因此excel知道它需要位于其他列上。 我对编码没有任何

我有个问题,我想请你帮忙。问题是,我正在尝试使用ApachePOI将文本文件.txt中的数据放入excel工作表。我复制txt中的所有数据没有问题,但是当我粘贴到所选的工作表单元格中时,它附带了我选择的单元格中的所有值,当然,这就是我命令执行的操作

当我手动操作时,打开txt文件,创建新的excel文件,ctrl+c txt文件,在excel工作表上ctrl+v,所有的标签都放在正确的位置,就像我希望我能做的那样。 txt文件是选项卡式的,因此excel知道它需要位于其他列上。 我对编码没有任何问题,因为没有错误或其他什么,我可以用3种不同的方式手动完成

我用来从txt复制的代码

String all= "";
try (BufferedReader br = new BufferedReader(new FileReader("C:\\arquivo.txt"))) {
     String sCurrentLine;
     while ((sCurrentLine = br.readLine()) != null) {
        all = all + "\n" + 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();

我想知道的是:有什么方法可以做到这一点吗?

使用选项卡式deleter\t从文本文件中拆分每一行,并写入适当的单元格值。
共享您的代码,以便获得更多帮助。

您需要解析输入文本,然后根据文本内容创建行和单元格。 试着这样做:

    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();

这将把文本文件的每一行读入一个字符串[]数组,该数组按制表符拆分,制表符是Excel中的默认分隔符,并放入一个有序列表中。可以将split函数中的正则表达式模式更改为适合文本的任何模式。第二部分迭代字符串数组列表,并将每个列表写入一行,写入列表中的每个词、句子、数字。。。进入它自己的单元格。

我不想删除txt文件,因为有时候txt文件会非常大,所以我试图避免这种情况,以防止性能损失。显示您正在向代码中的Testing.xls文件中写入内容吗?@whatthefish:提问者代码中的文件写入部分似乎很好,我将其添加到了回答中。