三行代码嵌入 java 实现复杂 Excel 数据入库

一般常规办法:先使用POI或者HSSFWorkbook等第三方类库对其表格数据结构化,再用SQL语句写入数据库。由于Java并没有表格对象,总要利用集合加实体类去实现(硬编码),如果碰到格式复杂的表格,解析难度大,工作量会成倍增加,代码不仅冗长、且很难通用。

比如要处理这么个场景:数据库表Logistics有3个字段:Shippers、Region、Quantity。解析如下Excel表格,并入库:

 

 

入库后的效果:

 

 

Java代码大概要写成这样子:

...

File target = new File(filepath, filename);

FileInputStream fi = new FileInputStream(target);

HSSFWorkbook wb = new HSSFWorkbook(fi);

HSSFSheet sheet = wb.getSheetAt(sheetnum);

int rowNum = sheet.getLastRowNum() + 1;

for (int i = startrow; i < rowNum; i++) {

        PageData varpd = new PageData();

        HSSFRow row = sheet.getRow(i);

        int cellNum = row.getLastCellNum();

        ...

        }

...

List<PageData> listPd = (List)ObjectExcelRead.readExcel(filePath, fileName, 3, 0, 0);             

for(int i=0;i<listPd.size();i++){

        pd.put("ET_ID", this.get32UUID());

        ...

        }      

/*The operation to import the database*/

mv.addObject("msg","success");  

...

如果有了集算器,这样的问题则会简单很多,它是专业处理结构化数据的语言,能够轻松读取Excel数据,结构化成“序表”后导入数据库。以往需要编写数千行代码才能完成的Excel数据结构化入库工作,现在只需简单的几行就搞定了。比如上面的问题,集算器SPL仅3行:

 

A

1

=file("/workspace/crosstab.xls").xlsimport@t(;1,2).rename(#1:Shippers)

2

=A1.pivot@r(Shippers;Region,Quantity)

3

=Mysql.update(A2,Logistics)

其实还有很多类似的结构化问题不太方便,但有集算器SPL的辅助却很简单,感兴趣可以参考:复杂Excel表格导入导出的最简方法10行代码提取复杂Excel数据

集算器还很容易嵌入到Java应用程序中,Java如何调用SPL脚本有使用和获得它的方法。

关于集算器安装使用、获得免费授权和相关技术资料,可以参见如何使用集算器

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值