学习poi导出excel之XSSFWorkbook

news/2024/7/21 3:47:53 标签: excel, 学习

1 基本介绍

POI提供了HSSF、XSSF以及SXSSF三种方式操作Excel。

HSSF:Excel97-2003版本,扩展名为.xls。一个sheet最大行数65536,最大列数256。
XSSF:Excel2007版本开始,扩展名为.xlsx。一个sheet最大行数1048576,最大列数16384。
SXSSF:是在XSSF基础上,POI3.8版本开始提供的支持低内存占用的操作方式,扩展名为.xlsx。
eg:比如在项目导入时会检测此时的表格结尾是xls还是xlsx后缀,在new对象时就会里用到 

 提示:SXSSFWorkbook 设置内存中最多只有1000行数据,当超过这个数据时,就将内存之前的数据删除,并且会在硬盘中生成临时文件。从而保证了低内存消耗。
注:针对 SXSSF Beta 3.8下,会有临时文件产生

2 XSSFWorkbook 生成excel

    // 1、创建工作表
    XSSFWorkbook xssfWorkbook = new XSSFWorkbook();
    XSSFSheet xssfSheet = xssfWorkbook.createSheet("sheet名称");
    XSSFRow xssfRow; // 行
    XSSFCell xssfCell; // 列
    // 2、在sheet中创建行,注意判断 第一行是否已经创建,否则会覆盖之前的数据
    xssfRow = xssfSheet.getRow(1);
    if (xssfRow == null) {
        xssfRow = xssfSheet.createRow(1);
    }
    // 3、创建单元格
    xssfCell = xssfRow.createCell(1);
    // 4、设置单元格内容
    xssfCell.setCellValue("测试"); 
    // 5、导出excel
   response.setCharacterEncoding("UTF-8");

   response.setHeader("content-Type", "application/vnd.ms-excel");

   if (fileName.matches("^.+\\.(?i)(xls)$") || fileName.matches("^.+\\.(?i)(xlsx)$"))

   { fileName = fileName.substring( 0 ,fileName.lastIndexOf("."));

}

   response.setHeader("Content-Disposition", "attachment;filename=" +                  URLEncoder.encode(fileName, "UTF-8")+".xlsx" );

   out = response.getOutputStream();

   workbook.write(out);

   out.flush();
   out.close();
   xssfWorkbook.close();

 3 获取合并单元格的值

重要其他知识请参考【poi导出excel之XSSFWorkbook】_一个搬砖的农民工的博客-CSDN博客_xssfworkbook


http://www.niftyadmin.cn/n/22498.html

相关文章

看完这篇,我不允许你还不会用Allegro显示PCB的3D模式

看完这篇,我不允许你还不会用Allegro显示PCB的3D模式 Allegro可以显示PCB的3D效果,利于查看和检查,如下图 具体操作如下 选择Set-up-user preferences选择Display

Servlet基础教程 (保姆级教学)

Servlet基础教程一、Servlet 是什么二、第一个 Servlet 程序2.1 创建项目2.2 引入依赖2.3 创建目录2.4 编写代码2.5 打包程序2.6 部署程序2.7 验证程序三、更方便的部署方式3.1 安装 Smart Tomcat 插件3.2 配置 Smart Tomcat 插件四、常见的访问出错4.1 出现 4044.2 出现 4054.…

ARM64内存虚拟化分析(2)常用结构体

内存虚拟化相关的几个重要结构体如下图所示: 这里介绍几个结构体以及相互之间有关系。 (1)AddressSpace结构体 它用于表示一个虚拟机或虚拟CPU能够访问的所有物理地址。其中: root:指向根MR Current_map&#xff1…

像素旋转:一种在加密图像中实现安全的可逆数据隐藏方案

文章目录前言一、提出的PR-RDHEI方案二、算法步骤简介1.图像加密2.数据嵌入(重点)3.图像恢复(重点)总结收获与思考前言 原文题目《Reversal of pixel rotation: A reversible data hiding system towards cybersecurity in encry…

程序员必备十大网站

窝窝整理了十大程序猿必备网站,涵盖了开源平台、搜索引擎、免费的精品课程,包括让你头疼的BUG、算法等。偷偷告诉你,还有帮你拿到心仪的 offer! 一,海量的资源平台 十大网站榜首 :GitHub — 开发者极其重…

国际舆情监测软件有哪些,手机舆情监测主流软件推荐?

国际舆情监测软件是指能够监测和分析国际公共信息的软件。这种软件可以收集来自新闻、博客、社交媒体、论坛等信息源的信息,并将其汇总到一个可视化的界面中,供用户查看和分析,接下来TOOM舆情监测小编带您了解国际舆情监测软件有哪些&#xf…

STM32/51单片机实训day4——RFID数据读取|RC522|串口数据收发、可模拟RFID (三) 仿真

目录 1 任务指导 2 实验步骤 3 串口调试 4 USART配置 5 fputs函数重写 内 容:能够读取RFID卡S50的ID——编程实现串口数据收发 学 时:3学时 知识点:电路图设计、USART配置 重点: USART配置 难点:USART配置 时…

[vue element-ui]JAVA POST请求

01.前端 <!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><script type"text/javascript" src"js/jquery-3.4.1.min.js"></script><script type"text/javascript&qu…