HSSF - 提供读写Microsoft Excel XLS格式档案的功能。 XSSF - 提供读写Microsoft Excel OOXML XLSX格式档案的功能。 HWPF - 提供读写Microsoft Word DOC97格式档案的功能。 XWPF - 提供读写Microsoft Word DOC2003格式档案的功能。 HSLF - 提供读写Microsoft PowerPoint格式档案的功能。 HDGF - 提供读Microsoft Visio格式档案的功能。 HPBF - 提供读Microsoft Publisher格式档案的功能。 HSMF - 提供读Microsoft Outlook格式档案的功能。 注意: 1.生成excel时,注意xls和xlxs是有区别的 xls与xlsx的区别在于是不同版本生成的文件。 xls是excel2003及以前版本生成的文件格式。 xlsx是excel2007及以后版本生成的文件格式(excel 2007之后版本可以打开xls格式的文件)。 如果后缀使用错误,使用POI创建一个新的xlsx,提示创建成功,但是打开xlsx文件的时候,会报错打不开,文件的格式与扩展名指定的格式不一致 2.在依赖之后,启动报错了 在使用tomcat9.0启动的时候,报maven仓库找不到xalanxalan2.7.2xercesImpl.jar (系统找不到指定的文件)问题 原因:为什么为加载到D:XXX目录xalanxalan2.7.2xercesImpl.jar这个文件,各种百度谷歌,最后找到问题是tomcat 加载包的问题。tomcat在8.5.2 中 修改了加载jar的方式,8.5.2 版本会解析jar中MANIFEST.MF文件,当该文件包含class-path属性时,会把该属性对象值,解析成需要加载的jar给加载进来。这个就是根本原因。没得办法,只有自降版本到8.5.0就能解决这个问题。为了解决这个问题,花了老子半天时间。 https://www.cnblogs.com/shuo1208/p/7603144.html使用
第一步:引入POI依赖
推荐引入poi-ooxml,这个包会自动关联引入poi包,且可以很好的支持Office2007+的文档格式
代码org.apache.poi poi-ooxml${poi.version}
1.生成xls
//1、创建workbook,对应一个Excel HSSFWorkbook wb = new HSSFWorkbook(); //2、创建一个sheet,参数为sheet的名称 HSSFSheet sheet = wb.createSheet(fileName); //3、创建第一行 HSSFRow row = sheet.createRow(0); //4、创建第一行的列信息,也就是列名 HSSFCell cell = row.createCell(0); cell.setCellValue("机构名称"); cell = row.createCell(1); cell.setCellValue("机构编号"); //5、写入数据 for(int i=1;i<=3;i++){ row = sheet.createRow(i); cell = row.createCell(0); cell.setCellValue(111); cell = row.createCell(1); cell.setCellValue(222); } FileOutputStream os = new FileOutputStream(testFile);; try{ wb.write(os); }catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ os.close(); }
2.生成xlsx
XSSFWorkbook workbook=new XSSFWorkbook(); //1.创建工作表sheet Sheet sheet=workbook.createSheet("这个在excel文档内容的下部显示"); // 这个在excel文档内容的下部显示,根据需要自定义 //2.创建第一行 Row row=sheet.createRow(0); Cell cell=null; //3.插入第一行数据的表头 for(int i=0;i<3;i++){ cell=row.createCell(i); cell.setCellValue("第"+(i+1)+"列"); } //4.写入数据 for (int i=1;i<=10;i++){ Row nrow=sheet.createRow(i); Cell ncell=nrow.createCell(0); ncell.setCellValue("第"+i+"列,第一个字段"); ncell=nrow.createCell(1); ncell.setCellValue("第"+i+"列,第二个字段"); ncell=nrow.createCell(2); ncell.setCellValue("第"+i+"列,第三个字段"); } //5.生成文件 FileOutputStream os = new FileOutputStream(testFile);; try { workbook.write(os); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally{ os.close(); }