从另一个工作表过多的 excel 创建一个新的一个工作表 excel 文件



当我运行下面的代码时,我得到了这个错误。

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,它将不起作用。您可以尝试打开所需的文件,然后删除不想保留的工作表。

最新更新