POI读取Excel文件

项目中需要读取一些客户提供的EXCEL文件
需要将这些数据保存到数据库中
这就需要使用POI对excel进行读取

主要思路:
1,使用POI读取excel中每行的数据作为一条记录,对应生成一条insert语句
2,需要对应字段,也就是Excel中的sheet对应表,列对应field
3,如果excel是模板式数据,即每列代表什么是规定好的,那么很简单,通过硬编码来实现
4,如果excel是动态的,列的顺序不固定,但是总体是固定的,那就需要通过字段匹配来实现了,硬编码就不可取啦!动态匹配思路:通过XML将映射关系对应起来,程序中读取XML将映射关系保存到MAP中,列名作为key,对应数据库中的field作为value。
5.使用POI读取每个cell的值,读完一行后就可以生成一条insert语句


另外,由于我所在项目中遇到的excel是固定的模板式数据,通过硬编码来读取excel的
即,针对每张sheet执行一次命令,在执行命令的时候传入需要的参数
在程序中将读取到的cell与field对应上就能生成正确的sql!

另外,在同事的建议下,将该功能写为了一个小工具
一个可执行的jar文件
其它同事只需要执行jar命令 并在后面传递参数就能生成SQL语句了!

--------------------------------------------------------------------
可执行jar
1.定义一个java类,类中有main方法
2.main方法的args[]参数接受输入的数据
3.完成功能
4.编写manifest文件,放置到src目录下
示例:
文件名: mymanifest.mf
内容如下(注意冒号后面加空格):
Manifest-Version: 1.0
Main-Class: scms.excel2sql.Excel2SqlService
Class-Path: lib/poi-3.6.jar
Created-By: hqh

5.命令行中通过命令生成jar
首先需要切换到src目录下,将lib文件夹拷贝到src目录下
jar cvfm excel2sql.jar mymanifest.mf ./
这样就生成了excel2sql.jar
6.执行jar
java -jar excel2sql.jar dir excelFileName sheetIndex tableName field1,field2,field3...

到此完成任务!

需要改进的地方:
由于现学现用,jar包好像没有将依赖的POI一并打入,或许是manifest中classpath路径配置有问题。将生成的jar文件放到其它地方时,会抛异常,发现是需要lib中的poi.jar,但是我打jar包时候程序输出表明已经打入了,对此不解。
当把lib放到jar的同级目录下时,就能正常执行。
空了再研究下,有点累!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值