0

有什么方法可以使用 apache poi 读取或写入 excel 2003 和 2007 格式。我知道我们可以将 HSSF 工作簿用于 2003 格式和 XSSF 用于 2007(如果我错了,请纠正我)。但是有什么方法可以同时读取使用任何单个工作簿进行格式化,但不单独使用。

4

3 回答 3

0

利用

WorkbookFactory.create(in);

基于javadoc,它

从给定的 InputStream 创建适当的 HSSFWorkbook / XSSFWorkbook。

于 2012-07-12T09:51:37.980 回答
0

试试Workbook wb = WorkbookFactory.create(OPCPackage pkg);。它应该工作。但是,如果XSSF太大,您将得到一个OutOfMemoryException,因此您应该使用事件用户模型来读取您的文件。在这种情况下,您应该阅读您的路径并检查文件的扩展名,如下所示:

private boolean isXLS(String inputPath) {
    String tmp = inputPath.substring(inputPath.length() - 3,
            inputPath.length());
    if (tmp.equalsIgnoreCase("XLS"))
        return true;
    else
        return false;
}

阅读How-to以获取有关事件用户模型的更多信息。

于 2012-07-12T08:32:00.800 回答
0

是的,你可以做到。事实上,它在 Apache POI 网站上有相当广泛的记录!

如果您已经有使用 HSSF 的代码,那么您应该遵循HSSF 到 SS 转换指南以获取有关更新您的代码以通用两种格式的帮助。

如果您还没有任何代码,请按照用户 API 指南开始操作 - 其中的所有代码对这两种格式都是通用的。您还可以查看快速指南以了解一些特定问题以及如何以一般方式解决这些问题。

于 2012-07-12T09:25:18.087 回答