使用poi库解析excel时需要注意的一些点(处理不固定列信息、空单元格处理)

业务上需要上传并解析excel。这边因为项目本来就已经引入了poi库,就没有考虑别的类库,本人以前还使用过jxl,个人感觉poi是比较好用的,暂不评论其他类库。

Apache POI
Apache POI是免费开源的跨平台的Java API,Apache POI提供给Java程序对Microsoft Office 格式档案进行读写功能的API开源类库。它可以对不同格式的文件进行解析:
HSSF – 提供读写Microsoft Excel格式档案的功能。
XSSF – 提供读写Microsoft Excel OOXML格式档案的功能。
HWPF – 提供读写Microsoft Word格式档案的功能。
HSLF – 提供读写Microsoft PowerPoint格式档案的功能。
HDGF – 提供读写Microsoft Visio格式档案的功能。

我这边文件上传限定了excel,只需要用到hssf和xssf,根据文件后缀名来决定,xlsx后缀名用xssf,xls后缀名用hssf。(好像新版本还提供了SXSSF,效率更高?个人没有研究)

个人需求这边excel列信息是不固定的,只能确定有金额等某些列,以下代码展示如何确定有无金额列,以及取到他是哪列及对应信息的读取。

// 正常读取文件流这个写法是jdk7以后的 无需手动close关闭流
try (InputStream inputStream = new FileInputStream(filePath)) {
   
	Workbook workbook;
	// 识别后缀名 不同的类型需要用不同的来读取流
	if ("xlsx".equalsIgnoreCase(suffix)) {
   
		workbook = new XSSFWorkbook(inputStream);
	} else if ("xls".equalsIgnoreCase(suffix)) {
   
		workbook = new HSSFWorkbook(inputStream);
	} else {
   
		throw ..
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值