如何在 Java 中将 XLS 转换为 XLSX

主要观点:

  • 长期使用 Excel 的 Java 开发者认为旧的 XLS 格式笨拙烦人,已被 XLSX 取代,仍有大量数据需转换为 XLSX 以提升数据可用性和安全性。
  • XLS 格式为二进制文件结构,有诸多限制,如行数和列数限制、内部错误难以排查、与新 API 或云服务的互操作性不佳等,处理 XLS 文件的开源库如 Apache POI 需不同代码路径和类,较脆弱。
  • XLSX 是 Microsoft 的 Open Office XML 标准的一部分,是 ZIP 压缩的 XML 文件,结构清晰,便于调试、版本控制等,与开源工具、云 API 和 Java 库兼容性好,是处理表格数据等的更安全和可扩展的选择。
  • 从 XLS 到 XLSX 的编程升级比 Excel 桌面应用的“另存为”操作更复杂,需将二进制文件转换为 XML 结构,处理包含宏或嵌入式对象的文件时更复杂,多数只存储表格数据等的 XLS 文件转换较平滑。
  • Apache POI 是处理 Java 中 Excel 工作的最佳开源默认库,但处理 XLS 和 XLSX 需使用不同 API,转换过程繁琐,需手动复制内容;使用第三方 Web API 可简化 XLS 到 XLSX 的转换过程,只需配置 API 客户端和调用接口,将 XLS 文件转换为 XLSX 文件内容的字节数组,可写入新文件。

关键信息:

  • XLS 出现于 80 年代末,已被 XLSX 取代。
  • XLS 有行数、列数等限制,内部错误难排查,与新工具互操作性差。
  • XLSX 是 XML 结构,便于处理和兼容。
  • XLS 到 XLSX 升级复杂,多数 XLS 文件转换较平滑。
  • Apache POI 处理 XLS 和 XLSX 需不同 API,第三方 Web API 可简化转换。

重要细节:

  • XLS 二进制文件结构与现代文档格式不同,如财务导出等可能遇到。
  • XLSX 各部分在 XML 文档中结构清晰,如列设置和单元格数据。
  • Apache POI 中 HSSF 用于处理 XLS,XSSF 用于处理 XLSX,转换需手动复制内容。
  • 使用第三方 Web API 需添加 Maven 或 Gradle 依赖,配置 API 客户端并设置 API 密钥,调用接口进行转换。
阅读 10
0 条评论