EasyExcel采用一行一行的解析模式
,并将一行的解析结果以观察者的模式通知处理(AnalysisEventListener)。
03和07版本的写,就是对象不同,方法一样
最大行列得数量
不同:
xls最大只有65536行、256列
xlsx可以有1048576行、16384列
org.apache.poi
poi
3.9
org.apache.poi
poi-ooxml
3.9
poi 操作xls的
poi-ooxml 操作xlsx的
操作的版本不同,使用的工具类也不同
工作簿:
工作表:
行:
列:
5.1小数据量
package cn.bloghut;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.joda.time.DateTime;
import org.junit.jupiter.api.Test;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.Date;
/**
-
@Classname ExcelWrite
-
@Description TODO
-
@Date 2022/1/7 12:41
-
@Created by 闲言
*/
public class ExcelWrite {
String PATH = “G:\狂\POIStudy\xy-poi”;
/**
- 写工作簿 03版本
*/
@Test
public void Write03() throws Exception {
//1.创建一个工作簿
Workbook workbook = new HSSFWorkbook();
//2.创建 一个工作表
Sheet sheet = workbook.createSheet(“闲言粉丝统计表”);
//3.创建一行
Row row1 = sheet.createRow(0);
//4.创建一个单元格
//(1,1)
Cell cell1 = row1.createCell(0);
cell1.setCellValue(“今日新增观众”);
//(1,2)
Cell cell2 = row1.createCell(1);
cell2.setCellValue(666);
//创建第二行
Row row2 = sheet.createRow(1);
//(2,1)
Cell cell21 = row2.createCell(0);
cell21.setCellValue(“统计时间”);
//(2,2)
Cell cell22 = row2.createCell(1);
String datetime = new DateTime().toString(“yyyy-MM-dd HH:mm:ss”);
cell22.setCellValue(datetime);
//生成一张表(IO流),03版本就是使用xls结尾
FileOutputStream fos = new FileOutputStream(PATH + “闲言观众统计表03.xls”);
//输出
workbook.write(fos);
//关闭流
fos.close();
System.out.println(“文件生成完毕”);
}
/**
- 写工作簿 07版本
*/
@Test
public void Write07() throws Exception {
//1.创建一个工作簿
Workbook workbook = new XSSFWorkbook();
//2.创建 一个工作表
Sheet sheet = workbook.createSheet(“闲言粉丝统计表”);
//3.创建一行
Row row1 = sheet.createRow(0);
//4.创建一个单元格
//(1,1)
Cell cell1 = row1.createCell(0);
cell1.setCellValue(“今日新增观众”);
//(1,2)
Cell cell2 = row1.createCell(1);
cell2.setCellValue(666);
/