我试图使用Apache POI 3.9将XLS文件转换为java中的CSV文件,但是我遇到了一些问题。当尝试转换我需要的文件时,它显示了以下错误:
java.io.IOException: Invalid header signature; read 0x0010000000080209, expected 0xE11AB1A1E011CFD0
at org.apache.poi.poifs.storage.HeaderBlock.<init>(HeaderBlock.java:140)
at org.apache.poi.poifs.storage.HeaderBlock.<init>(HeaderBlock.java:104)
at org.apache.poi.poifs.filesystem.POIFSFileSystem.<init>(POIFSFileSystem.java:138)
at ExtractExcelToCSV.convertExcelToCsv(ExtractExcelToCSV.java:26)
at ExtractExcelToCSV.main(ExtractExcelToCSV.java:60)
我认为我使用的代码是完全正确的(它也适用于其他文件)。我认为问题出在XLS文件上,因为当我试图使用微软Excel打开它时,它也向我显示了一个关于文件类型的警告(它说它是微软Excel 3工作表)。有没有办法使用POI打开这些文件?
public static void convertExcelToCsv() throws IOException {
try {
cellGrid = new ArrayList<List<HSSFCell>>();
FileInputStream myInput = new FileInputStream("D:\\...\\filename.xls");
POIFSFileSystem myFileSystem = new POIFSFileSystem(myInput);
HSSFWorkbook myWorkBook = new HSSFWorkbook(myFileSystem);
HSSFSheet mySheet = myWorkBook.getSheetAt(0);
Iterator<?> rowIter = mySheet.rowIterator();
while (rowIter.hasNext()) {
HSSFRow myRow = (HSSFRow) rowIter.next();
Iterator<?> cellIter = myRow.cellIterator();
List<HSSFCell> cellRowList = new ArrayList<HSSFCell>();
while (cellIter.hasNext()) {
HSSFCell myCell = (HSSFCell) cellIter.next();
cellRowList.add(myCell);
}
cellGrid.add(cellRowList);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
还有一个类似的问题。即使这个文件有扩展名。xls,它也不是一个Excel文件!感谢这里在Excel中做“另存为”的评论,它可能会告诉你格式是什么。在我的例子中,这是一个制表符分隔的文件,所以我没有使用ApachePOI来解析它。希望这有所帮助。
我在Maven构建期间收到此错误。 无法执行目标组织。阿帕奇。专家插件:maven shade插件:2.4.3:项目dl4j上的shade(默认)示例:创建着色jar时出错:无效的LOC头(错误签名)- 这是我的pom。xml文件。 我多次尝试删除jar文件,但似乎都不起作用。
用户可以将Excel文档保存为. xls或xml-table。结果是一个具有固定结构的xml-file,Excel可以用它纠正工作。 可以用java中的ApachePOI打开这种类型的excel文件吗? 事先谢谢你,安德烈。
问题内容: 在执行这段(相对简单的)代码时,我得到了这个错误: 其实。有趣的是,我在java-sun-6u32和java-1.6.0-openjdk-amd64上得到它,但是java- sun-7u4成功了。解压缩本身似乎可以解决问题。我猜这意味着这些zipfile可能是由Java 7可以理解的某些较新版本的zip创建的,而以前的版本则不是。但是,任何见识将不胜感激。另外,由于在生产中我真的没有使
问题内容: 我正在尝试学习使用Apache的pdfBox处理经过数字签名的文档。在测试期间,我创建了一个完全空白的pdf文档。 然后,我使用带有证书的签名功能通过Adobe Reader对该文档进行了签名。 我尝试使用pdfBox打开,保存和关闭签名文件,没有进行任何修改。但是,一旦我在Adobe中打开文件,这些文件将不再有效。 Adobe告诉我:“此签名中包含的格式或信息有错误(支持信息:Sig
问题内容: 尝试使用ApachePOI打开Excel时,我得到 我检查了。没有创建这样的文件夹。我正在使用Apache POI 3.6版。 有什么帮助吗?类似的代码在其他工作区中运行良好。在这里不知所措。 码: 问题答案: 您为什么要制作一个非常好的文件,将其包装在中,然后要求POI必须为您缓冲整个文件,以便可以进行随机访问?如果直接将文件直接传递给POI,生活会好很多,因此可以根据需要跳过它!
然后我用adobe签名并通过以下方式传递: 我真的不明白为什么这不起作用。任何帮助都会很好! 编辑: 按照建议,我已经将添加的注释、页面和注释列表的NeedToBeUpdated标志设置为true(希望最后一个操作正确): 注释仍然没有保存,所以我显然遗漏了一些东西。 编辑3: 但是,当我在adobe Reader中打开文档时,它不会出现。也许这与外观流的关系更大,而不是注释本身?