java中的POI是什么?

POI为“Poor Obfuscation Implementation”的首字母缩写,意为“简洁版的模糊实现”

是用Java编写的免费开源的跨平台的 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。

简而言之,就是"进行MsOffice进行读写的这样一个东西“

POI下包结构说明:

HSSF - 提供读写Microsoft Excel格式档案的功能。

XSSF - 提供读写Microsoft Excel OOXML格式档案的功能。

HWPF - 提供读写Microsoft Word格式档案的功能。

HSLF - 提供读写Microsoft PowerPoint格式档案的功能。

HDGF - 提供读写Microsoft Visio格式档案的功能。

本息主要讲我遇到的 Excel操作:

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

(1)HSSF:Excel97-2003版本,扩展名为.xls。一个sheet最大行数65536,最大列数256。

(2)XSSF:Excel2007版本开始,扩展名为.xlsx。一个sheet最大行数1048576,最大列数16384。

(3)SXSSF:是在XSSF基础上,POI3.8版本开始提供的支持低内存占用的操作方式,扩展名为.xlsx。

Excel版本兼容性是向下兼容。

三种类的接口和方法如下:

HSSF:HSSFWorkbook、HSSFSheet、HSSFRow、HSSFCell……XSSF:XSSFWorkbook、XSSFSheet、XSSFRow、XSSFCell……SXSSF:SXSSFWorkbook、Sheet、Row、Cell……

很重要的一点,SXSSF之所以是一种低内存操作方式,是因为他的构造方法:

System.out.println(System.getProperty("java.io.tmpdir"));

案例代码:


@RequestMapping(value = "/exportExcel", method = RequestMethod.GET)
@ApiOperation(value = "导出Excel", notes = "")
public void exportExcel(@ModelAttribute OhHazard pojo, HttpServletResponse res) throws IOException {exportExcel(res,pojo);
}
private void exportExcel(HttpServletResponse res, Object pojo) throws IOException {List<Object> list = service.selectPageList(pojo, 1, Integer.MAX_VALUE).getList();//这是查询语句,需根据实际需求Workbook wb = new XSSFWorkbook();//创建一个新的工作簿    Sheet sheet = wb.createSheet("导出数据");//创建第一个Sheet页,括号内是工作簿的名字. String fileName = "表名文字描述" + DateUtil.formatDate(new Date()) + ".xlsx";//给导出的文件取名字genOhhazardExcel(list, sheet,wb);sheet.setDisplayGridlines(false);WebUtils.writeExcel(wb, fileName,res);
}
// TODO: 2021/10/12  导出
private void genObjectExcel(List<Object> list, Sheet sheet,Workbook wb) throws IOException {// 设置第一行表头Row rowHead = sheet.createRow(0);//给表头行创建列(这里创建了8列)rowHead.createCell(0).setCellValue("XXXXX");rowHead.createCell(1).setCellValue("XXXXX");rowHead.createCell(2).setCellValue("XXXXX");rowHead.createCell(3).setCellValue("XXXXX");rowHead.createCell(4).setCellValue("XXXXX");rowHead.createCell(5).setCellValue("XXXXX");.....rowHead.createCell(n).setCellValue("XXXX");CellStyle cellStyleHead = ExcelUtils.headCellStyle(wb);//给单元格设置表头格式for (int i = 0; i <n+1; i++) {//这个n是上面对应0~5列数最后一列5rowHead.getCell(i).setCellStyle(cellStyleHead);}//当列表不为空的时候,就进行遍历if(!CollectionUtils.isEmpty(list)){CellStyle style = ExcelUtils.cellStyle(wb);CellStyle borderCellStyle = ExcelUtils.cellBorder(wb.createCellStyle());for(int rownum = 0; rownum < list.size(); rownum++){Row row = sheet.createRow(rownum+1);row.setHeight((short) 360);类名 对象名=list.get(rownum);//下列进行单元格的赋值row.createCell(0).setCellValue(对象.getXXX());//取设置每一个单元格的值if(!StringUtils.isEmpty(对象.XXX1())){row.createCell(1).setCellValue(对象.XXX1());//}.....//后续皆是如此设置一个单元格值//遍历for (int i = 0; i <n+1 ; i++) {if (row.getCell(i) != null) {row.getCell(i).setCellStyle(style);} else {row.createCell(i).setCellStyle(borderCellStyle);}}}ExcelUtils.autoColumnWidth(sheet, 8);//}else{sheet.createRow(1).createCell(0).setCellValue("查询不到数据");}}

你知道什么是POI吗?相关推荐

  1. Apache POI:解决数据库和Excel之间相互转换的烦恼~

    目录 引言 一.简介 二.POI-Excel 写 1.创建项目 2.引入依赖 3.步骤 1. 创建工作簿 2. 创建工作表 3. 创建行 4. 创建单元格 5. 单元格中填入数据 6. 通过IO流生成 ...

  2. xwpftemplate的时间设置_java poi设置生成的word的图片为上下型环绕以及其位置

    问题描述 在使用poi-tl word模版工具时,发现生成的文档中,图片格式为嵌入型,有的图片甚至被表格遮挡一半.而自己想要的图片格式为上下型环绕,并且图片需要居中. 问题分析 poi-tl渲染图片, ...

  3. Java项目:学生考勤管理系统(java+SSM+Poi导出+Easyui+JFreeChart+maven+mysql)

    源码获取:博客首页 "资源" 里下载! 这个项目适合SSM框架的初学者(涉及大量增删改查,很适合初学者)以及对Shiro安全框架和Poi技术感兴趣的同学. 项目功能: 用户管理功能 ...

  4. POI解析Excel文件工具类

    /*** 读取excel数据*/public static List<Map<String, Object>> exportListFromExcel(File file, i ...

  5. POI如何使用已有Excel作为模板二三事

    关于POI POI是Apache的一个开源项目,起初的目标是允许用户使用java代码来对Excel进行操作,发展到今天POI本身支持的范围已经逐步扩展到对Microsoft Office主要产品,包括 ...

  6. 高德地图POI搜索,附近地图搜索,类似附近的人搜索

    效果图: 首先导入道德地图的SDK,导入步骤不在这里介绍 2:包含头文件: [objc] view plaincopy #import <AMapSearchKit/AMapSearchAPI. ...

  7. java中mypoiexception,java - 如何使用Poi获取Java中单元格的数据验证源? - 堆栈内存溢出...

    此问题包含多个不同的问题. 首先,我们需要获取工作表的数据验证,然后为每个数据验证获取数据验证所适用的Excel单元格范围. 如果该单元格位于该单元格范围之一中,并且数据验证是列表约束,则进行进一步处 ...

  8. Spring Boot + EasyExcel 导入导出,好用到爆,可以扔掉 POI 了!

    欢迎关注方志朋的博客,回复"666"获面试宝典 一.EasyExcel EasyExcel是阿里巴巴开源poi插件之一,主要解决了poi框架使用复杂,sax解析模式不容易操作,数据 ...

  9. 利用Java反射机制和poi插件操作excel

    最近在公司写一个利用poi插件读取excel的东西,,不想每一个都写一遍解析代码.就想利用Java的反射机制,写对应的实体类,获取对应excel中的值,下面是解析的代码,仅供参考.不足之处,望指出/* ...

  10. POI简易帮助文档系列--给Excel设置样式

    正如Html需要CSS一样,我们的POI生成的Excel同样需要样式才能更完美的表现我们的数据.下面还是从简单的例子出发,学习和了解POI的样式设计. 一.我的位置. 1 package com.my ...

最新文章

  1. 一文看尽腾讯WE大会:从治愈白血病到地球肿块,再到类脑芯片,烧脑探索“小宇宙”...
  2. P4849 寻找宝藏(模板:四维偏序)
  3. Linux C高级编程——网络编程基础(1)
  4. LeetCode-652. 寻找重复的子树
  5. 二分查找的平均查找长度详解【转】
  6. Futter基础第9篇: 实现页面跳转、跳转传值(命名路由、命名路由传值)
  7. someip协议_汽车以太网SOMEIP协议课件抢先看
  8. excel频率分布表的绘制
  9. 发那科机器人编码器_发那科M-420iA系列机器人驱动器报警编码器报警维修
  10. 开心网之开心餐厅游戏分析报告
  11. 利用python将txt文本批量转化为excel格式文件
  12. 信息完全技术之Enigma密码机【MATLAB程序及软件APP实现】
  13. 如何写出高分IB TOK Essay?
  14. 基于web的标签设计,打印工具,超diao
  15. java英语面试自我介绍_java的英文面试自我介绍
  16. html画流程图插件,基于SVG的流程图插件Flowchart.js
  17. 联想微型计算机b320,“蜗居”必备! 联想B320一体电脑评测
  18. 记录使用gensim进行词向量增量训练(遇到的几个问题)
  19. jks bks 等的定义 如何将jks转化为bks的
  20. 数据的封装与解封装:TCP/IP五层协议

热门文章

  1. 计算Grassmannian geodesic
  2. 【台大郭彦甫】Matlab入门教程超详细学习笔记二:基本操作与矩阵运算(附PPT链接)
  3. 论文阅读 2021——SUNet: Symmetric Undistortion Network for Rolling Shutter Correction
  4. 运营商常见的大数据业务学习笔记
  5. 智能消防应急照明和疏散指示系统的应用
  6. 【雷达成像】雷达SAR成像仿真的应用(Matlab代码实现)
  7. Tiny4412汇编流水灯代码,Tiny4412裸机LED操作【转】
  8. 分析如何为便携式电子设备挑选安全可靠的场效应晶体管?
  9. 什么是面向过程与面向对象
  10. CSAPP: Architecture Lab