maven依赖如下
//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