springboot 如何通过HSSFWorkbook和XSSFWorkbook读取写入excel文件

1.在pom.xml文件中添加如下依赖

其中poi是操作xls后缀需要的jar包,poi-ooxml是操作xlsx后缀需要的jar包

 <!-- excel start -->
        <!-- xls -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.17</version>
        </dependency>
        <!-- xlsx -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.17</version>
        </dependency>
        <!-- excel end -->

2.读取excel文件

这边可以使用工具类来进行读写。
工具类代码:

package com.ding.platform.common.utils;

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

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;

/**
 * 读取excel工具类
 * Copyright: Copyright (C) 2021
 *
 * @author ding
 * @since 2021-03-03 18:07
 */
public class DingReadExcelUtil {

    /**
     * 日志
     */
    private Logger log = Logger.getLogger(String.valueOf(this.getClass()));

    /**
     * xls后缀的表格文件
     */
    private static final String EXCEL_XLS = ".xls";

    /**
     * xlsx后缀的表格文件
     */
    private static final String EXCEL_XLSX = ".xlsx";

    /**
     * excel文件内容对象
     */
    private Workbook wb = null;

    /**
     * 单个表格内容
     */
    private Sheet sheet = null;

    /**
     * 行信息对象
     */
    private Row row = null;

    /**
     *
     * @param filePath excel文件路径
     * @return true:初始化成功, false:初始化失败
     */
    public boolean initReadExce
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
HSSFWorkbookXSSFWorkbook是Apache POI库中表示Excel文件的两个不同实现,前者用于处理.xls文件,后者用于处理.xlsx文件。如果需要将HSSFWorkbook转换为XSSFWorkbook,需要分别读取Excel文件并将其写入Excel文件。以下是一个示例代码: ```java import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class HSSFtoXSSF { public static void main(String[] args) throws IOException { // 读取旧的Excel文件 FileInputStream fis = new FileInputStream("oldExcel.xls"); Workbook wb = new HSSFWorkbook(fis); // 创建新的Excel文件 XSSFWorkbook xssfWorkbook = new XSSFWorkbook(); // 将旧Excel文件的内容复制到新的Excel文件 for (int i = 0; i < wb.getNumberOfSheets(); i++) { xssfWorkbook.createSheet(wb.getSheetName(i)); for (int j = 0; j < wb.getSheetAt(i).getPhysicalNumberOfRows(); j++) { xssfWorkbook.getSheetAt(i).createRow(j); for (int k = 0; k < wb.getSheetAt(i).getRow(j).getPhysicalNumberOfCells(); k++) { xssfWorkbook.getSheetAt(i).getRow(j).createCell(k) .setCellValue(wb.getSheetAt(i).getRow(j).getCell(k).toString()); } } } // 将新的Excel文件写出到磁盘 FileOutputStream fos = new FileOutputStream("newExcel.xlsx"); xssfWorkbook.write(fos); fos.close(); } } ``` 需要注意的是,HSSFWorkbookXSSFWorkbook之间存在一些差异,例如前者不支持超过65536行的Excel文件。因此,转换过程中可能需要进行一些额外的处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值