java - 如何使用 Java 加载旧的 Microsoft Office XML 文件 (Excel)

标签 java xml excel ms-office

我无法将旧版 Office XML 格式(比如 Office 2002 或 2003 版本)的 Excel 文件加载到 Java 中。我尝试了 JXL 和 Apache 的 POI(3.7 版)。 POI 不起作用,因为它似乎需要较新的 Office .xlsx 格式。

这是一个 example旧的 Office XML 格式。

是否可以通过将工作簿另存为“XML Spreadsheet 2003”格式从 MS Excel 2010 生成类似的 XML 文件?

是否有任何可以加载 XMLSS 格式的开源 Java 库?否则我别无选择,只能编写自定义解析器:读取 XML 文件,然后解释单元格标签以构建单元格矩阵。在这种 XML 格式中,任何具有空单元格值的行都将被跳过,下一个包含数据的单元格使用索引属性定位,该属性类似于列中的偏移量,我假设是为了节省 XML 文件中的空间。

最佳答案

该格式称为 SpreadsheetML(不要与同样基于 xml 的 .xlsx 混淆),一个名为 Xelem 的库可以处理:

import nl.fountain.xelem.excel.Workbook;
import nl.fountain.xelem.lex.ExcelReader;
//...
ExcelReader reader = new ExcelReader();
Workbook xlWorkbook = reader.getWorkbook("c:\\my\\spreadsheet.xml");
System.out.println(xlWorkbook.getSheetNames());

关于java - 如何使用 Java 加载旧的 Microsoft Office XML 文件 (Excel),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7089039/

相关文章:

java - 如何在待定 Intent 中设置两个 Intent

java - 如何将库中的值连接为默认值并在应用程序显式定义属性后覆盖它

c# - 为什么只拿一个? Linq to XML C#

c# - DataTable 中的 ClosedXML 工作表不遵循文化

javascript - 在 VBA 中从 Javascript 获取 XmlHttpRequest 的 ReadyState

Excel 和在两个下拉列表之间更改值

java - FishEye 可以做什么我们无法从其他工具获得的 git 存储库?

java - 如何在 smack 中设置我的名字?

SQL Server 2008 FOR XML 路径帮助

python - 如何使用 ElementTree 注释掉 XML <Tag>