当我运行以下代码时,出现此错误。
org.apache.poi.openxml4j.exceptions.NotOfficeXmlFileException: The supplied data appears to be a raw XML file. Formats such as Office 2003 XML are not supported
OPCPackage pkg = OPCPackage.open(filename);
XSSFReader r = new XSSFReader( pkg );
SharedStringsTable sst = r.getSharedStringsTable();
XMLReader parser = fetchSheetParser(sst);
InputStream sheet2 = r.getSheet("rId7");
wb = new XSSFWorkbook(sheet2);
如果我写的话效果很好
wb = new XSSFWorkbook(pkg);
已安装
wb = new XSSFWorkbook(sheet2);
但它从我的旧 Excel 中创建了所有工作表。我不想要它。因为我的旧excel很大。
有没有一种方法可以从相对 ID 为“rId7”的旧 Excel 工作表中仅创建一个工作表 Excel 文件?
最佳答案
new XSSFWorkbook()
需要 .xlsx
文件作为输入。这是一个具有 .XLSX 结构的 zip 文件。如果您提供的只是原始 XML,它将无法工作。您可以尝试打开您想要的文件,然后删除您不想保留的工作表。
关于java - 从另一个包含太多工作表的 Excel 创建一个新的单工作表 Excel 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48208157/