Excel文件解析的相关知识

在生活中或者工作中我们避免不了用Excel工具,所以们要进行对Excel文件的读和写就是解析和输出,所以所以我们用什么工具对Excel进行解析,我就简单的介绍一下,Apache POI, JXL,Alibaba EesyExcel等等,但是我们一般使用Apache POI,它是Java编写的免费开源的平台;他提供的对不同文件的解析功能,一般我们会用到 HSSF他是老版本的Excel只能存储65535行数据,XSSF是新版本的一般我们用这个。

解析Excel文件我们大概的从四个方面进行解说Workbook(Excel文件) Sheet(工作薄)  Row(行)  Cell(单元格),所以一般我们学习解析还是创建Excel文件时候按照这四部一部一部递进进行的;

Workbook:首先它是一个接口,用于解析或者(创建)Excel文件常见的实现类就是XSSF

常见的方法;
FileInputStream fis = new FileInputStream("c:\\test\\1627356554991.xlsx");
Workbook workbook = new XSSFWorkbook(fis);(解析一个Excel文件)

FileOutputStream out = new FileOutputStream("c:\\test\\1627356554991.xlsx");
Workbook workbook = new XSSFWorkbook(out);(创建一个Excel文件)

Sheet;它也是一个接口代表的是一个工作薄,是通过Workbook来获取或者是创建的

常见的方法;
Sheet sheet1 = workbook.createSheet();(按照默认名称创建工作簿)
Sheet sheet2 = workbook.createSheet("自定义工作簿2");(// 按照自定义名称创建工作簿)


Sheet sheet01 = workbook.getSheetAt(0);(// 按照工作簿下标获取Sheet)
Sheet sheet02 = workbook.getSheet("Sheet0");(// 按照工作簿名称获取Sheet)

int n = workbook.getNumberOfSheets();(获取工作的数量)   

Row; 它也是一个接口,代表是每个工作薄的行,是通过sheet得到的

常见方法

Row row = sheet.createRow(0);(创建数据行)

Row row = sheet.getRow(0);(根据下表获取指定的数据的行)

int first = sheet.getFirstRowNum();(获取首行下标)

int last = sheet.getLastRowNum();(获取尾行下标)

Cell:它是一个接口,代表的行的里的单元格,它是通过Row获取的

常见方法

Cell cell0 = row.createCell(0);(创建单元格)

cell0.setCellValue(UUID.randomUUID().toString());(在单元格里写东西)

Cell cell = row.getCell(1);(根据下标拿到对应单元格)

CellType type = cell.getCellType();(获取单元格类型,有可能是数字或者是字符串)

如果设置日期的话
DataFormat dataFormat = workbook.createDataFormat();
Short formatCode = dataFormat.getFormat("yyyy-MM-dd HH:mm:ss");(在这里设置日期的格式)
CellStyle cellStyle = workbook.createCellStyle();
cellStyle.setDataFormat(formatCode);

设置当前时间
Cell cell1 = row.createCell(1);
cell1.setCellStyle(cellStyle); // 设置单元格样式
cell1.setCellValue(new Date()); // 保存当前日期时间至本单元格

创建单元格样式
CellStyle cellStyle = workbook.createCellStyle();

设置单元格的水平对齐类型。 此时水平居中
cellStyle.setAlignment(HorizontalAlignment.CENTER);

 设置单元格的垂直对齐类型。 此时垂直靠底边
cellStyle.setVerticalAlignment(VerticalAlignment.BOTTOM);

这就是简单创建获取一般的Excel文件但是当我们遇见大型的Excel文件呢我没有一个Workbook的实现类SXSSWorkbook,可以通过传入参数来控制一次性把多少字节写入内存,这样就不存在创建大数量的Excel文件的问题了下面是这个实现类的代码;

但是这样只能创建不能获取,那么我们怎么才能获取呢?这时候我们用到另一个EasyExcel工具

EasyExcel;是阿里巴巴一个基于java的简单,省内存的读写的开源项目

EasyExcel的写入;一般需要创建一个实现类,然后根据这个实现类进行读和写

大数量的读取Excel文件:

 大数量的写Excel文件

  • 35
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值