欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

ExcelPOI

时间:2023-05-11
Excel POI

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

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。