您的位置:首页 > 编程语言 > Java开发

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

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

try
{
//实例化一个工作簿对象
Workbook workBook=Workbook.getWorkbook(new File("F://qzlx.xls"));
//获取该工作表中的第一个工作表
Sheet sheet=workBook.getSheet(0);
//获取该工作表的行数,以供下面循环使用
int rowSize=sheet.getRows();
for(int i=0;i<rowSize;i++)
{
//编号
String id=sheet.getCell(0,i).getContents();
//转来单位及文号
String turn_unit=sheet.getCell(1,i).getContents();
//来信人姓名
String reg_name=sheet.getCell(2,i).getContents();
//来信人单位或住址
String reg_unit=sheet.getCell(3,i).getContents();
//来信内容
String reg_content=sheet.getCell(4,i).getContents();
//来信日期
Date reg_time = java.sql.Date.valueOf(sheet.getCell(5,i).getContents());
//信访事项发生地或单位
String reg_eventUnit=sheet.getCell(6,i).getContents();
//处理情况
String do_case=sheet.getCell(7,i).getContents();
//处理日期
Date do_time=java.sql.Date.valueOf(sheet.getCell(8,i).getContents());
//问题归类
String problem_type=sheet.getCell(9,i).getContents();
//问题所属系统
String problem_system=sheet.getCell(10,i).getContents();
//督办时间及文号
String wenhao=sheet.getCell(11,i).getContents();
//经办人
String processor=sheet.getCell(12,i).getContents();
//备注
String remark=sheet.getCell(13,i).getContents();
LcTOldRegServiceImpl regService=new LcTOldRegServiceImpl();
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);
//执行保存数据到数据库语句…….
regService.add_qzlx(reg);
System.out.print("已成功导入第"+id+"条纪录");
}
return mapping.findForward("import_success");
}
catch(Exception ex)
{
System.out.print(ex.getMessage());
return mapping.findForward("import_faile");
}


有几个需要注意的地方说一下:
一是在使用JXL控件之前,需要将jxl.jar添加到工程中,而且jxl.jar要是最新的版本,如果版本很旧的话,会造成它跟JDK不兼容的问题.
二是要导入的Excel表单元格中不能存在排序,筛选,错误检查,数据有效性检查等符号,如果有则要在导入前,先去掉这些符号。
三就是注意单元列的数据类型,以便在处理时匹配我们规定的数据类型。
这里我只是演示读取Excel表数据,然后插入到数据库,当然它还可以对Excel执行写,删除操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: