如何使用 Java 转换 XLS 与 XLSX 格式


在处理 Excel 文件时,常常会遇到两种主要的格式:.xls.xlsx.xls 是旧版 Excel 所使用的格式,而 .xlsx 则是从 Excel 2007 版本开始的默认格式。无论是为了将旧文件更新为新版格式,还是确保与不同系统之间的兼容性,转换这两种格式是非常常见的需求。

本文将介绍如何使用 Java 来实现 .xls.xlsx 格式的相互转换。无论你是开发者还是技术人员,这篇文章将为你提供一种高效、便捷的解决方案。

为什么要将 XLS 转换为 XLSX?

在开始介绍转换操作之前,先简单了解一下为什么需要将 .xls 文件转换为 .xlsx。与 .xls 相比,.xlsx 格式有以下几个显著的优势:

  • 文件体积更小.xlsx 格式采用 ZIP 压缩,能有效减少文件的体积。
  • 更好的性能 :Excel 2007 及后续版本对 .xlsx 格式有更好的支持,尤其在处理大型数据集时,性能表现更加优越。
  • 支持更多功能.xlsx 格式能够支持更多的行列(超过 6 万行,1.6 万列),并且有更多高级的公式和格式化选项。
  • 不过,有些老旧系统或第三方应用可能仍然需要 .xls 格式的文件。在这种情况下,从 .xlsx 转换为 .xls 也是非常必要的。

    Java 中的 Excel 文件转换工具

    在 Java 中,有多种库可以帮助开发者处理 Excel 文件的格式转换,比如 Apache POI 和 Spire.XLS。Apache POI 是一个开源的库,广泛应用于处理 Microsoft Office 格式文件;而 Spire.XLS 提供了一个更加简洁且易于使用的 API,特别是在处理 .xls.xlsx 文件转换时,使用起来更加高效。

    在本文中,我们将主要介绍 Spire.XLS,它不仅支持 Excel 文件的读取和写入,还能轻松进行格式转换,并且对 .xls.xlsx 格式都提供了良好的支持。

    如何使用 Java 将 XLS 转换为 XLSX

    接下来,我们将通过具体的代码示例,介绍如何使用 Java 将 .xls 文件转换为 .xlsx 格式。

    1. 将 Spire.XLS 添加到项目中

    首先,你需要将 Spire.XLS 库集成到你的 Java 项目中。你可以直接从官网下载安装,或者如果使用 Maven 构建项目,可以直接在 pom.xml 中添加以下依赖:

    <repositories>
        <repository>
            <id>com.e-iceblue</id>
            <name>e-iceblue</name>
            <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
        </repository>
    </repositories>
    <dependencies>
        <dependency>
            <groupId>e-iceblue</groupId>
            <artifactId>spire.xls</artifactId>
            <version>15.10.5</version>
        </dependency>
    </dependencies>

    2. 加载 XLS 文件并保存为 XLSX 文件

    一旦将 Spire.XLS 集成到项目中,就可以使用以下代码加载 .xls 文件并将其转换为 .xlsx 格式:

    import com.spire.xls.*;

    public class ExcelConversion {
        public static void main(String[] args) {
            // 创建一个 Workbook 对象
            Workbook workbook = new Workbook();
            
            // 加载 .xls 文件
            workbook.loadFromFile("input.xls");
            
            // 转换并保存为 .xlsx 格式
            workbook.saveToFile("output.xlsx", ExcelVersion.Version2013);
        }
    }

    在这个示例中,loadFromFile 方法用于加载 .xls 文件,接着通过 saveToFile 方法将文件转换并保存为 .xlsx 格式。ExcelVersion.Version2013 参数表示文件将被保存为 .xlsx 格式。

    3. 运行程序

    完成上述操作后,运行程序,.xls 文件就会被成功转换为 .xlsx 格式,并保存为 output.xlsx

    如何将 XLSX 转换为 XLS

    .xlsx 转换为 .xls 的过程也非常简单。只需稍微调整输入和输出格式即可:

    import com.spire.xls.*;

    public class ExcelConversion {
        public static void main(String[] args) {
            // 创建一个 Workbook 对象
            Workbook workbook = new Workbook();
            
            // 加载 .xlsx 文件
            workbook.loadFromFile("input.xlsx");
            
            // 转换并保存为 .xls 格式
            workbook.saveToFile("output.xls", ExcelVersion.Version97To2003);
        }
    }

    在这里,ExcelVersion.Version97To2003 参数指定了将文件保存为 .xls 格式。

    需要注意的事项

  • 文件大小和功能 :从 .xlsx 转换为 .xls 时,要注意 .xls 格式的限制,例如支持的行列数较少,且无法支持一些新版本的 Excel 特性。因此,转换过程中可能会丢失某些数据或格式。
  • 兼容性 :转换后的文件,建议在目标版本的 Excel 中进行测试,以确保文件的兼容性和正常显示。
  • 错误处理 :处理文件时,加入适当的错误处理代码可以帮助你应对例如文件格式不匹配或文件无法访问等常见问题。
  • 总结

    在 Java 中,处理 .xls.xlsx 格式的转换是日常工作中的常见需求。通过使用 Spire.XLS 库,你可以轻松地将 Excel 文件从 .xls 转换为 .xlsx,或者将 .xlsx 转换为 .xls,并将这一过程集成到你的 Java 应用中。

    按照本文提供的步骤,你可以高效地完成 Excel 文件格式的转换,确保在不同平台和版本的 Excel 中都能顺利使用这些文件。

    最后编辑于
    ©著作权归作者所有,转载或内容合作请联系作者
    【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
    平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

    友情链接更多精彩内容