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

Java写Excel,各种版本

时间:2023-04-18
文章目录

一、Java操作写入普通的03和07版本的Excel二、关于03和07版本的大数据写入并比较时间三、07版本升级版的写入(SXSSFWorkbook)用到的pom文件 一、Java操作写入普通的03和07版本的Excel

String PATH="/公共路径/"; @Test public void testWrite03() throws Exception { //1,创建一个工作簿 Workbook workbook=new HSSFWorkbook(); //2.创建一个工作表 Sheet sheet=workbook.createSheet("普通的统计表"); //3,创建一个行(1.1) Row row1=sheet.createRow(0); //4.创建一个单元格 Cell cell11 = row1.createCell(0); cell11.setCellValue("第一行第一列标题"); //(1.2) Cell cell12 = row1.createCell(1); cell12.setCellValue("12"); // 第二行 Row row2 = sheet.createRow(1); Cell cell21 = row2.createCell(0); cell21.setCellValue("第二行第一列标题时间"); Cell cell22 = row2.createCell(1); String times = new DateTime().toString("yyyy-MM-dd HH:mm:ss"); cell22.setCellValue(times); //生成一张表 FileOutputStream fileOutputStream = new FileOutputStream(PATH+"普通03的统计表03.xls"); //输出 workbook.write(fileOutputStream); //关闭留 fileOutputStream.close(); System.out.println("生成成功"); } @Test public void testWrite07() throws Exception { //1,创建一个工作簿 Workbook workbook=new XSSFWorkbook(); //2.创建一个工作表 Sheet sheet=workbook.createSheet("普通07统计表"); //3,创建一个行(1.1) Row row1=sheet.createRow(0); //4.创建一个单元格 Cell cell11 = row1.createCell(0); cell11.setCellValue("第一行第一列标题"); //(1.2) Cell cell12 = row1.createCell(1); cell12.setCellValue("12"); // 第二行 Row row2 = sheet.createRow(1); Cell cell21 = row2.createCell(0); cell21.setCellValue("第二行第一列标题时间"); Cell cell22 = row2.createCell(1); String times = new DateTime().toString("yyyy-MM-dd HH:mm:ss"); cell22.setCellValue(times); //生成一张表(IO流) FileOutputStream fileOutputStream = new FileOutputStream(PATH+"普通07版本的统计表07.xlsx"); //输出 workbook.write(fileOutputStream); //关闭留 fileOutputStream.close(); System.out.println("生成成功"); }

二、关于03和07版本的大数据写入并比较时间

String PATH="/公共路径/";@Test public void testWrite03BigData() throws Exception { //用了多少时间 long begin=System.currentTimeMillis(); //创建一个工作簿 Workbook workbook = new HSSFWorkbook(); //创建一张表 Sheet sheet = workbook.createSheet(); //写入数据 for (int rowNum=0;rowNum<65536;rowNum++){ Row row = sheet.createRow(rowNum); for (int cellNum=0;cellNum<10;cellNum++){ Cell cell = row.createCell(cellNum); cell.setCellValue(cellNum); } } System.out.println("over"); FileOutputStream fileOutputStream = new FileOutputStream(PATH+"testWrite03BigData大数据03.xls"); workbook.write(fileOutputStream); fileOutputStream.close(); long end=System.currentTimeMillis(); System.out.println((double) (end-begin)/1000); } //耗时较长,优化 @Test public void testWrite07BigData() throws Exception { //耗时较长 //用了多少时间 long begin=System.currentTimeMillis(); //创建一个工作簿 Workbook workbook = new XSSFWorkbook(); //创建一张表 Sheet sheet = workbook.createSheet(); //写入数据 for (int rowNum=0;rowNum<65537;rowNum++){ Row row = sheet.createRow(rowNum); for (int cellNum=0;cellNum<10;cellNum++){ Cell cell = row.createCell(cellNum); cell.setCellValue(cellNum); } } System.out.println("over"); FileOutputStream fileOutputStream = new FileOutputStream(PATH+"testWrite07BigData大数据07.xlsx"); workbook.write(fileOutputStream); fileOutputStream.close(); long end=System.currentTimeMillis(); System.out.println((double) (end-begin)/1000); }

三、07版本升级版的写入(SXSSFWorkbook)

String PATH="/公共路径/"; @Test public void testWrite07BigDataS() throws Exception { //耗时较长 //用了多少时间 long begin=System.currentTimeMillis(); //创建一个工作簿 Workbook workbook = new SXSSFWorkbook(); //创建一张表 Sheet sheet = workbook.createSheet(); //写入数据 for (int rowNum=0;rowNum<65537;rowNum++){ Row row = sheet.createRow(rowNum); for (int cellNum=0;cellNum<10;cellNum++){ Cell cell = row.createCell(cellNum); cell.setCellValue(cellNum); } } System.out.println("over"); FileOutputStream fileOutputStream = new FileOutputStream(PATH+"testWrite07BigDataS大数据07.xlsx"); workbook.write(fileOutputStream); fileOutputStream.close(); //清除临时文件 ((SXSSFWorkbook) workbook).dispose(); long end=System.currentTimeMillis(); System.out.println((double) (end-begin)/1000); }

用到的pom文件

org.apache.poi poi 3.9 org.apache.poi poi-ooxml 3.9 joda-time joda-time 2.10.1 junit junit 4.12

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

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