从另一个包含太多工作表的Excel中创建新的一个工作表excel文件

时间:2018-01-11 13:23:42

标签: java xml excel apache-poi

当我运行以下代码时出现此错误。

  

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”?

1 个答案:

答案 0 :(得分:1)

new XSSFWorkbook()需要.xlsx个文件作为输入。这是一个带有.XLSX结构的zip文件。如果您提供的只是原始XML,它将无法工作。您可以尝试打开所需的文件,然后删除您不想保留的工作表。