找不到这个确切用例的很多例子。基本上我有两个目录,应该包含相同的文件,混合.xlsx文件和.txt文件。我编写了一堆代码来比较.xlsx文件,并且还可以返回它找到的任何不匹配的坐标(行,列)。
我的代码在使用文本文件时似乎有问题,我可以通过excel手动打开这个,它是一个制表符分隔的文本文件。
我尝试将其转换为XSSFWorkbook时不喜欢,其中File excelFile1是我的文本文件:
FileInputStream controlFile = new FileInputStream(this.excelFile1);
XSSFWorkbook controlWorkBook = new XSSFWorkbook(controlFile);
我得到的例外是:
org.apache.poi.openxml4j.exceptions.NotOfficeXmlFileException: No valid entries or contents found, this is not a valid OOXML (Office Open XML) file
我想这是因为它是.txt文件而不是.xlsx文件?没有为文本文件编写单独的逻辑,有没有办法解决这个问题?有没有办法像处理.xlsx文件那样处理.txt文件?
谢谢!
答案 0 :(得分:4)
CSV文本文件不是Excel文件,无法使用POI进行操作。
对于这些情况,您必须编写新代码以使用CSV阅读器(例如OpenCSV或Apache Commons CSV),并在内存中实现该文件的模型。