【问题标题】:Creating a new one sheet excel file from another excel which has too many sheets从另一个有太多工作表的 excel 创建一个新的工作表 excel 文件
【发布时间】:2018-01-11 13:23:41
【问题描述】:

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

org.apache.poi.openxml4j.exceptions.NotOfficeXmlFileException: 提供的数据似乎是一个原始 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);

插入

   wb = new XSSFWorkbook(sheet2);

但它会从我的旧 Excel 中创建所有工作表。我不想要它。因为我的旧excel非常庞大。

有没有办法从相对 id 为“rId7”的旧 excel 工作表中只创建一个工作表 excel 文件?

【问题讨论】:

  • 你可以尝试写pkg.Move;而不是wb = new XSSFWorkbook(pkg);吗?

标签: java xml excel apache-poi


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多