excel poi的titleRows 和 headRows含义

  • titleRows
    这个参数的意思是:excel标题占多少行,而不是第几行
  • headRows
    这个参数的意思是:excel表头占几行,而不是第几行(多行的意思是合并的行数)

比如有一个excel如下,1-2行是标题,3-4行是表头,他们都合并了。

那么代码可以这样设置:

java 复制代码
ImportParams params = new ImportParams();
//这个参数的意思是:excel标题占多少行,而不是第几行
params.setTitleRows(2);
//这个参数的意思是:excel表头占几行,而不是第几行(多行的意思是合并的行数)
params.setHeadRows(2);
//表格sheet数量
params.setSheetNum(1);

//从第几个表格开始读 默认0
//params.setStartSheetIndex(1);
//读取的表格sheet数量
//params.setSheetNum(1);

上传示例:

java 复制代码
    @RequestMapping("/importExcel")
    public String importExcel(@RequestParam("file") MultipartFile file, Model model) {
        List<Province> provinces = null;
        InputStream inputStream = null;
        try {
            ImportParams params = new ImportParams();
            //这个参数的意思是:excel标题占多少行,而不是第几行
            params.setTitleRows(2);
            //这个参数的意思是:excel表头占几行,而不是第几行(多行的意思是合并的行数)
            params.setHeadRows(2);
            //表格sheet数量
            params.setSheetNum(1);

            inputStream = file.getInputStream();
            provinces = ExcelImportUtil.importExcel(inputStream, Province.class, params);
            //把导入的信息输出到控制台
            for(Province pro:provinces) {
                System.out.println(pro);
            }
        } catch (Exception e) {
            model.addAttribute("msg","导入失败");
            e.printStackTrace();
        }finally {
            //这里注意释放资源:import org.apache.tomcat.util.http.fileupload.IOUtils;
            //否则会报错
            IOUtils.closeQuietly(inputStream);
        }
        model.addAttribute("msg","导入成功");
        return "importExcel";
    }

最后finally里注意释放资源,否则可能会报类似如下错误:

s.w.m.s.StandardServletMultipartResolver : Failed to perform cleanup of multipart items

java.io.UncheckedIOException: Cannot delete C:\Users\username\AppData\Local\Temp\tomcat.8080.xxxx\work\Tomcat\localhost\ROOT\upload_xxxx_00000000.tmp

相关推荐
傻啦嘿哟4 小时前
Python实现Excel数据自动化处理:从繁琐操作到智能流程的蜕变
python·自动化·excel
hqyjzsb19 小时前
从爱好到专业:AI初学者如何跨越CAIE认证的理想与现实鸿沟
大数据·c语言·人工智能·信息可视化·职场和发展·excel·业界资讯
vfvfb1 天前
excel对比找不同人名 双xlsx双列对比
excel·excel多列对比
課代表2 天前
Excel VBA 为数据赋予随机浅色标记
excel·vba·可视化·条件格式·标记·对比·随机
kylezhao20192 天前
C#上位机开发数据持久化:excel报表导入导出
开发语言·c#·excel
悟能不能悟2 天前
springboot controller返回的是HttpServletResponse成功返回excel文件流,失败就返回失败参数
spring boot·后端·excel
野比带雄3 天前
対excel时间格式的理解
excel
缺点内向3 天前
Java:轻松实现 Excel 文档属性添加
java·开发语言·excel
Teable任意门互动3 天前
从飞书多维表格 简道云到Teable多维表格:企业为何选择Teable作为新一代智能数据协作平台?
数据库·excel·钉钉·飞书·开源软件
AC赳赳老秦3 天前
DeepSeek + Excel 实战:多表联动分析与异常数据自动预警教程
microsoft·rabbitmq·excel·etcd·memcached·memcache·deepseek