当我运行以下代码时出现此错误。
org.apache.poi.openxml4j.exceptions.NotOfficeXmlFileException:The 提供的数据似乎是原始XML文件。 Office等格式 不支持2003 XML
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);
insted of
wb = new XSSFWorkbook(sheet2);
但它创建了我的旧excel中的所有工作表。我不想要它。因为我的旧时代非常巨大。
有没有办法只从旧的Excel工作表创建一个工作表excel文件,其中相对ID是“rId7”?
答案 0 :(得分:1)
new XSSFWorkbook()
需要.xlsx
个文件作为输入。这是一个带有.XLSX结构的zip文件。如果您提供的只是原始XML,它将无法工作。您可以尝试打开所需的文件,然后删除您不想保留的工作表。