在程序开发中,数据可能会是通过解析上传的表格解析获取的,页面上展示的数据可能会要生成报表供客户查看,因此表格的解析与生成也是开发中重要的一部分。
表格的解析与生成都是使用的apache的poi包,其中XSSFWorkbook、HSSFWorkbook都可以进行表格的解析与生成,但是两者是有区别的:
HSSFWorkbook:是操作Excel2003以前(包括2003)的版本,扩展名是.xls
XSSFWorkbook:是操作Excel2007的版本,扩展名是.xlsx
1、 表格的解析(获取表格数据)
表格解析的过程:首先获取表格文件,然后获取到sheet页,再通过获取到对应行,最后获取单元格信息,代码如下:
其中最后一步是一个数据类型转换,因为我们从表格中取出的数据不确定是什么类型,因此我这边全部转换成了String,具体转换代码如下图:
循环遍历,将表格中的值取出来,然后进行判断、解析、入库即可。
2、 表格的生成(生成报表)
表格生成的过程:首先读取流,然后设置字体,边框样式,再获取sheet页,创建行,创建单元格,放值,放样式,最后再用输出流写出来。代码如下:
对于单元格样式,建议通过api自行选择,本文只提两个方面,一个是合并,另外一个是关于数据格式(会计专用的格式)。
2.1、合并
合并单元格使用的是poi里自带的方法:
参数1:起始行 参数2:终止行 参数3:起始列 参数4:终止列
2.2、数据的格式处理
报表一般作为会计专用,金额上会按照会计专用的形式进行展示,那么,在我们生成表格的时候该如何处理呢?
具体的处理就是讲数据的格式定义好,放到单元格的格式里:
其中"_ * #,##0.00_ ;_ * -#,##0.00_ ;_ * \"-\"??_ ;_ @_ "即为会计专用的转换代码。