`
schy_hqh
  • 浏览: 543973 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

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的同级目录下时,就能正常执行。
空了再研究下,有点累!
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics