依赖:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
常用API:
获得文档对象(工作簿):
03版的exile: Workbook workbook= new HSSFWorkbook(fs);
07版的exile: Workbook workbook= new XSSFWorkbook(fs);
大数据量exile对象:Workbook workbook= new SXSSFWorkbook();
获取工作表对象:
Sheet sheet = workbook.createSheet(“工作表名”)
设置列宽度:
sheet.setColumnWidth(0, 5 * 256);
参数一:列的索引,从0开始
参数二:列的宽度,这里设置的不是每列的 是所有列的总宽度
获取行对象:
Row row = sheet.createRow(索引);
获取有效行:
int rowcount = sheet.getLastRowNum();
取得一行的有效单元格个数:
row.getLastCellNum();
设置行样式:
row.setRowStyle(CellStyle);
设置行高:
row.setHeightInPoints(folat f);
row.setHeight(short s);
获取单元格对象:
Cell cell = row.createCell(索引)
Cell cell = row.createCell(索引,表格类型CellType)
CellType是一个枚举取值如下:
@Internal(
since = "POI 3.15 beta 3"
)
_NONE(-1),//未知类型
NUMERIC(0),//数值类型
STRING(1),//文本类型
FORMULA(2),//公式
BLANK(3),//空值
BOOLEAN(4),//布尔值
ERROR(5);//错误单元格
操作单元格
给单元格赋值:cell.setCellValue
设置单元格格式:cell.setCellStyle(this.title(workbook));参数为:CellStyle,单元格样式
获取单元格内容:
数值类型:cell.getNumericCellValue();
文本类型:cell.getStringCellValue();
布尔类型:cell.getBooleanCellValue()
日期类型:cell.getDateCellValue()
错误单元格类型:cell.getErrorCellValue()
单元格公式:cell.getCellFormula()
保存Excel文件:
需要通过流写到页面,在通过浏览器解析下载
FileOutputStream fileOut = new FileOutputStream(path);
workbook.write(fileOut);
POI EXCEL文档结构类
以HSSF为例:XSSF与SXSSF同理
HSSFWorkbook excel文档对象
HSSFSheet excel的sheet HSSFRow excel的行
HSSFCell excel的单元格 HSSFFont excel字体
HSSFName 名称
HSSFDataFormat 日期格式
HSSFHeader sheet头
HSSFFooter sheet尾
HSSFCellStyle cell样式
HSSFDateUtil 日期
HSSFPrintSetup 打印
HSSFErrorConstants 错误信息表