Java版将EXCEL表数据导入到数据库中

  可能很多开发者会面对客户这样的需求,在未使用系统之前,他们很多数据都是保存在Word或者Excel等一些电子表格中,现在他们需要将原来的数据自动导入到系统中去,而不是一条一条地手工录入。我就碰到了这样的需求,经过一番折腾之后,终于实现了,我是采用第三方控件JXL实现的,原理是比较简单的。下面是详细的代码:

 
01.try  
02.        {  
03.            //实例化一个工作簿对象   
04.          Workbook workBook=Workbook.getWorkbook(new File("F://qzlx.xls"));  
05.          //获取该工作表中的第一个工作表   
06.          Sheet sheet=workBook.getSheet(0);  
07.          //获取该工作表的行数,以供下面循环使用   
08.          int rowSize=sheet.getRows();  
09.          for(int i=0;i<rowSize;i++)  
10.          {  
11.              //编号   
12.              String id=sheet.getCell(0,i).getContents();  
13.              //转来单位及文号   
14.              String turn_unit=sheet.getCell(1,i).getContents();  
15.              //来信人姓名   
16.              String reg_name=sheet.getCell(2,i).getContents();             
17.              //来信人单位或住址   
18.              String reg_unit=sheet.getCell(3,i).getContents();  
19.              //来信内容   
20.              String reg_content=sheet.getCell(4,i).getContents();  
21.              //来信日期   
22.              Date reg_time = java.sql.Date.valueOf(sheet.getCell(5,i).getContents());  
23.              //信访事项发生地或单位   
24.              String reg_eventUnit=sheet.getCell(6,i).getContents();  
25.              //处理情况   
26.              String do_case=sheet.getCell(7,i).getContents();  
27.              //处理日期   
28.              Date do_time=java.sql.Date.valueOf(sheet.getCell(8,i).getContents());  
29.              //问题归类   
30.              String problem_type=sheet.getCell(9,i).getContents();  
31.              //问题所属系统   
32.              String problem_system=sheet.getCell(10,i).getContents();  
33.              //督办时间及文号   
34.              String wenhao=sheet.getCell(11,i).getContents();  
35.              //经办人   
36.              String processor=sheet.getCell(12,i).getContents();  
37.              //备注   
38.              String remark=sheet.getCell(13,i).getContents();  
39.              LcTOldRegServiceImpl regService=new LcTOldRegServiceImpl();              
40.              LctOldReg reg=new LctOldReg(id,turn_unit,reg_name,reg_unit,reg_time,do_time,wenhao,problem_system,problem_type,reg_eventUnit,remark,reg_content,processor,do_case);  
41.               //执行保存数据到数据库语句…….   
42.              regService.add_qzlx(reg);  
43.              System.out.print("已成功导入第"+id+"条纪录");  
44.          }  
45.          return mapping.findForward("import_success");  
46.        }  
47.        catch(Exception ex)  
48.        {  
49.            System.out.print(ex.getMessage());  
50.            return mapping.findForward("import_faile");  
51.        }  
有几个需要注意的地方说一下:

   一是在使用JXL控件之前,需要将jxl.jar添加到工程中,而且jxl.jar要是最新的版本,如果版本很旧的话,会造成它跟JDK不兼容的问题.

   二是要导入的Excel表单元格中不能存在排序,筛选,错误检查,数据有效性检查等符号,如果有则要在导入前,先去掉这些符号。

   三就是注意单元列的数据类型,以便在处理时匹配我们规定的数据类型。

这里我只是演示读取Excel表数据,然后插入到数据库,当然它还可以对Excel执行写,删除操作。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值