用Java POI将xls转成xlsx

在日常的工作中,我们经常会处理Excel文件。有时候我们会遇到需要将xls格式的Excel文件转换为xlsx格式的情况。这时,我们可以借助Java中强大的Apache POI库来实现这个转换过程。Apache POI是一个用于读写Microsoft Office文件的Java库,它支持处理Excel、Word、PowerPoint等文件格式。

本文将介绍如何使用Java POI将xls格式的Excel文件转换为xlsx格式的文件,并提供代码示例帮助您完成这个转换过程。

准备工作

在开始之前,您需要确保您已经安装了Java开发环境,并且已经添加了Apache POI库到您的项目中。如果您还没有安装Apache POI库,您可以通过Maven或Gradle等工具来添加依赖。

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>5.2.3</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>5.2.3</version>
</dependency>

代码示例

下面将演示如何使用Java POI将xls格式的Excel文件转换为xlsx格式的文件。

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class XlsToXlsxConverter {

    public static void convertXlsToXlsx(String xlsFilePath, String xlsxFilePath) {
        try {
            FileInputStream fis = new FileInputStream(xlsFilePath);
            Workbook workbook = new HSSFWorkbook(fis);

            XSSFWorkbook xssfWorkbook = new XSSFWorkbook();
            xssfWorkbook.createSheet("Sheet1");

            // Copy the content of xls workbook to xlsx workbook
            for (int i = 0; i < workbook.getNumberOfSheets(); i++) {
                xssfWorkbook.setSheetName(i, workbook.getSheetName(i));
                xssfWorkbook.createSheet(workbook.getSheetName(i));
            }

            FileOutputStream fos = new FileOutputStream(xlsxFilePath);
            xssfWorkbook.write(fos);

            fos.close();
            fis.close();
            workbook.close();
            xssfWorkbook.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        String xlsFilePath = "example.xls";
        String xlsxFilePath = "example.xlsx";

        convertXlsToXlsx(xlsFilePath, xlsxFilePath);
    }
}

流程图

下面是将xls转成xlsx的流程图:

flowchart TD
    A(开始) --> B(读取xls文件)
    B --> C(创建新的xlsx文件)
    C --> D(复制xls内容到xlsx)
    D --> E(保存xlsx文件)
    E --> F(结束)

结语

通过本文的介绍,您已经学会了如何使用Java POI来将xls格式的Excel文件转换为xlsx格式的文件。这个转换过程其实非常简单,只需要几行代码就可以实现。希望本文对您有所帮助,谢谢阅读!