poi及其用法
一 poi简介
- POI概述
Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。
结构:
• HSSF - 提供读写Microsoft Excel格式档案的功能。
• XSSF - 提供读写Microsoft Excel OOXML格式档案的功能。
• HWPF - 提供读写Microsoft Word格式档案的功能。
• HSLF - 提供读写Microsoft PowerPoint格式档案的功能。
• HDGF - 提供读写Microsoft Visio格式档案的功能。
二 官方主页和文档
官方主页http://poi.apache.org/index.html,
API文档http://poi.apache.org/apidocs/index.html
三Jakarta POI HSSF API组件:
HSSF(用于操作Excel的组件)提供给用户使用的对象在rg.apache.poi.hssf.usermodel包中,主要部分包括Excel对象,样式和格式,有以下几种常用的对象:
常用组件:
HSSFWorkbook excel的文档对象
HSSFSheet excel的表单
HSSFRow excel的行
HSSFCell excel的格子单元
HSSFFont excel字体
样式:
HSSFCellStyle cell样式
四. POI生成Excel设置单元格格式
HSSFWorkbook demoWorkBook = new HSSFWorkbook();
HSSFSheet demoSheet = demoWorkBook.createSheet(“The World’s 500 Enterprises”);
HSSFCell cell = demoSheet.createRow(0).createCell(0);
设置单元格为文本格式
HSSFCellStyle cellStyle2 = demoWorkBook.createCellStyle();
HSSFDataFormat format = demoWorkBook.createDataFormat();
cellStyle2.setDataFormat(format.getFormat(“@”));
cell.setCellStyle(cellStyle2);
第一种:日期格式
cell.setCellValue(new Date(2008,5,5));
//set date format
HSSFCellStyle cellStyle = demoWorkBook.createCellStyle();
HSSFDataFormat format= demoWorkBook.createDataFormat();
cellStyle.setDataFormat(format.getFormat(“yyyy年m月d日”));
cell.setCellStyle(cellStyle);
第二种:保留两位小数格式
cell.setCellValue(1.2);
HSSFCellStyle cellStyle = demoWorkBook.createCellStyle();
cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat(“0.00”));
cell.setCellStyle(cellStyle);
第三种:货币格式
cell.setCellValue(20000);
HSSFCellStyle cellStyle = demoWorkBook.createCellStyle();
HSSFDataFormat format= demoWorkBook.createDataFormat();
cellStyle.setDataFormat(format.getFormat(“¥#,##0”));
cell.setCellStyle(cellStyle);
第四种:百分比格式
cell.setCellValue(20);
HSSFCellStyle cellStyle = demoWorkBook.createCellStyle();
cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat(“0.00%”));
cell.setCellStyle(cellStyle);
第五种:中文大写格式
cell.setCellValue(20000);
HSSFCellStyle cellStyle = demoWorkBook.createCellStyle();
HSSFDataFormat format= demoWorkBook.createDataFormat();
cellStyle.setDataFormat(format.getFormat(“[DbNum2][$-804]0”));
cell.setCellStyle(cellStyle);
第六种:科学计数法格式
cell.setCellValue(20000);
HSSFCellStyle cellStyle = demoWorkBook.createCellStyle();
cellStyle.setDataFormat( HSSFDataFormat.getBuiltinFormat(“0.00E+00”));
cell.setCellStyle(cellStyle);
五 基本操作
首先,我们应该要知道的是,一个Excel文件对应一个workbook,一个workbook中有多个sheet组成,一个sheet是由多个行(row)和列(cell)组成。那么我们用poi要导出一个Excel表格的正确顺序应该是:
1、用HSSFWorkbook打开或者创建“Excel文件对象”
2、用HSSFWorkbook对象返回或者创建Sheet对象
3、用Sheet对象返回行对象,用行对象得到Cell对象
4、对Cell对象读写。
5、将生成的HSSFWorkbook放入HttpServletResponse中响应到前端页面
对poi操作excel详细解释可参考https://www.cnblogs.com/gdwkong/p/8669220.html
1创建新的工作薄
2 创建Sheet页
3创建单元格和给单元格赋值
4 excle版本不一样解决办法
5创建一个时间格式的单元格
6基于excle的类型转换问题
附demo地址: https://gitcode.net/qq_44970261/poi.git