maven依赖如下
org.apache.poi
poi
4.1.2
org.apache.poi
poi-ooxml
4.1.2
joda-time
joda-time
2.10.1
1.创建普通工作表
1.1 2003版本
//1.创建工作表/工作簿 Excel2003需要这个处理类HSSFWorkbook
Workbook wb = new HSSFWorkbook();
//2.创建Sheet页
Sheet sheet = wb.createSheet("疫苗统计");
//3.创建行
Row row0 = sheet.createRow(0);
//4.创建单元格
row0.createCell(0).setCellValue("今日人数");
row0.createCell(1).setCellValue("666");
//4.创建另外一行
Row row1 = sheet.createRow(1);
row1.createCell(0).setCellValue("统计时间");
row1.createCell(1).setCellValue(new DateTime().toString("YYYY-MM-dd HH:mm:ss"));
//将文件输入到指定目录中>
FileOutputStream fos = new FileOutputStream("G:/excel2003Data.xls");
wb.write(fos);
//释放资源
fos.close();
wb.close();
1.2 2007版本
//1.创建工作表/工作簿 Excel2007需要这个处理类XSSFWorkbook
Workbook wb = new XSSFWorkbook();
//2.创建Sheet页
Sheet sheet = wb.createSheet("疫苗统计2007");
//3.创建行
Row row0 = sheet.createRow(0);
//4.创建单元格
row0.createCell(0).setCellValue("今日人数");
row0.createCell(1).setCellValue("666");
//4.创建另外一行
Row row1 = sheet.createRow(1);
row1.createCell(0).setCellValue("统计时间");
row1.createCell(1).setCellValue(new DateTime().toString("YYYY-MM-dd HH:mm:ss"));
//将文件输入到指定目录中>
FileOutputStream fos = new FileOutputStream("G:/excel2007Data.xlsx");
wb.write(fos);
//释放资源
fos.close();
wb.close();
两者区别是:用于2003的类是:HSSFWorkbook,用于2007的类是XSSFWorkbook
2.创建大文件工作表2003版本只支持65536行数据,而2007版本支持的行数看系统分配的内存多少
2.1 2007快速创建大文件工作表//1.创建工作表/工作簿 Excel2003需要这个处理类HSSFWorkbook
SXSSFWorkbook wb = new SXSSFWorkbook();
//2.创建Sheet页
Sheet sheet = wb.createSheet("疫苗统计");
for(int i=0;i<65537;i++){
Row row = sheet.createRow(i);
row.createCell(0).setCellValue("66666");
}
//将文件输入到指定目录中>
FileOutputStream fos = new FileOutputStream("G:/excel2007BigDataFast.xlsx");
wb.write(fos);
//释放临时文件
wb.dispose();
//释放资源
fos.close();
wb.close();
快速大文件类:SXSSFWorkbook
3.读取工作表两个版本的excel读取方式几乎一致,区别只是new的类不同,需要把文件输入流对象放进构造器
FileInputStream fis = new FileInputStream("G:/商品信息表.xlsx");
Workbook wb = new XSSFWorkbook(fis);
Sheet sheet = wb.getSheetAt(0);
Row row = sheet.getRow(1);
short cellIndex = row.getLastCellNum();
for(int i=0;i


