当我运行下面的代码时,我得到了这个错误。
org.apache.poi.openxml4j.exceptions.NotOfficeXmlFileException: 提供的数据似乎是原始 XML 文件。办公室等格式 不支持 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);
而不是
wb = new XSSFWorkbook(sheet2);
但它从我的旧 excel 中创建所有工作表。我不要。因为我的旧外星非常巨大。
有没有办法从旧 excel 的工作表中仅创建一个相对 id 为"rId7"的工作表 excel 文件?
new XSSFWorkbook()
需要一个.xlsx
文件作为输入。这是一个带有 .XLSX结构。如果您提供的只是原始 XML,它将不起作用。您可以尝试打开所需的文件,然后删除不想保留的工作表。