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();
}



