开发中经常会涉及到excel的处理,如导出Excel,导入Excel到数据库中!操作Excel目前比较流行的就是Apache POI和 阿里巴巴的easyExcel
一、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格式档案的功能。
使用必须引入依赖
<dependency> <groupId>org.apache.poigroupId> <artifactId>poiartifactId> <version>3.17version>dependency> <dependency> <groupId>org.apache.poigroupId> <artifactId>poi-ooxmlartifactId><version>3.9version> dependency>
需要注意:03 | 07版本的写,就是对象不同,方法一样的!2003版本和2007版本存在兼容性的问题!03最多只有65535行!
二、 POI基本操作
1、EXCEL常用操作方法
//得到Excel常用对象 POIFSFileSystem fs=newPOIFSFileSystem (new FileInputStream("d:/test.xls")); //得到Excel工作簿对象 HSSFWorkbook wb = new HSSFWorkbook(fs); //得到Excel工作表对象 HSSFSheet sheet = wb.getSheetAt(0); //得到Excel工作表的行 HSSFRow row = sheet.getRow(i); //得到Excel工作表指定行的单元格 HSSFCell cell = row.getCell((short) j); //得到单元格样式 cellStyle = cell.getCellStyle();
2、建立Excel常用对象
HSSFWorkbook wb = new HSSFWorkbook();//创建Excel工作簿对象 HSSFSheet sheet = wb.createSheet("new sheet");//创建Excel工作表对象 HSSFRow row = sheet.createRow((short)0); //创建Excel工作表的行 cellStyle = wb.createCellStyle();//创建单元格样式 row.createCell((short)0).setCellStyle(cellStyle); //创建Excel工作表指定行的单元格 row.createCell((short)0).setCellValue(1); //设置Excel工作表的值
3、设置sheet名称和单元格内容
wb.setSheetName(1, "第一张工作表",HSSFCell.ENCODING_UTF_16); cell.setEncoding((short) 1); cell.setCellValue("单元格内容");
4、取得sheet的数目
wb.getNumberOfSheets()
5、 根据index取得sheet对象
HSSFSheet sheet = wb.getSheetAt(0);
6、取得有效的行数
int rowcount = sheet.getLastRowNum();
7、取得一行的有效单元格个数
row.getLastCellNum();
8、单元格值类型读写
cell.setCellType(HSSFCell.CELL_TYPE_STRING); //设置单元格为STRING类型 cell.getNumericCellValue();//读取为数值类型的单元格内容
9、设置列宽、行高
sheet.setColumnWidth((short)