struts2将excel文件内容导入数据库 ----- POI
来源:互联网 发布:网络支付各银行限额 编辑:程序博客网 时间:2024/06/06 03:48
原理: 先将文件导入,再读取文件内容,提取数据,生成对象,保存到数据库。
jar包:POI中poi-3.9-20121203.jar,poi-ooxml-3.9-20121203.jar这两个个为必须。实验结果。
xbean.jar必须。
在导入的基础上操作:
public String uploadFile(){String directory = "/upload"; String targetDirectory = ServletActionContext.getServletContext().getRealPath(directory); //生成上传的文件对象 File target = new File(targetDirectory,uploadFileFileName); //如果文件已经存在,则删除原有文件 if(target.exists()){ target.delete(); } //复制file对象,实现上传 try { FileUtils.copyFile(uploadFile, target); } catch (IOException e) { e.printStackTrace(); } //从导入的文件中读取数据 loadUserInfo(uploadFileFileName); return SUCCESS;}private void loadUserInfo(String uploadFileFileName) { //读取刚才上传文件,确保路径相同 String directory = "/upload"; String targetDirectory = ServletActionContext.getServletContext().getRealPath(directory); File target = new File(targetDirectory,uploadFileFileName); // HSSFWorkbook只能用来读取2003前(含)的版本, .xls 读取Excel2007时发生如下异常: org.apache.poi.poifs.filesystem.OfficeXmlFileException: The supplied data appears to be in the Office 2007+ XML. You are calling the part of POI that deals with OLE2 Office Documents. You need to call a different part of POI to process this data (eg XSSF instead of HSSF) //XSSFWorkbook 只能读取2007版本 .xlsx 读取Excel2003以前(包括2003)的版本时却发生了如下新异常: org.apache.poi.openxml4j.exceptions.InvalidOperationException: Can't open the specified file: '*.xls' //XSSF和HSSF虽然在不同的包里,但却引用了同一接口Workbook,可以用下面判断 Workbook wb = null; try{ FileInputStream fi = new FileInputStream(target); if (uploadFileFileName.toLowerCase().endsWith("xls")) { wb = new HSSFWorkbook(fi); }else if(uploadFileFileName.toLowerCase().endsWith("xlsx")) { wb = new XSSFWorkbook(fi); } Sheet sheet = wb.getSheetAt(0); int rowNum = sheet.getLastRowNum()+1; userList = new ArrayList<User>(); //i 从1开始表示第一行为标题 不包含在数据中 for(int i=1;i<rowNum;i++){ user = new User(); Row row = sheet.getRow(i); int cellNum = row.getLastCellNum(); for(int j=0;j<cellNum;j++){ Cell cell = row.getCell(j); String cellValue = null; switch(cell.getCellType()){ //判断excel单元格内容的格式,并对其进行转换,以便插入数据库 case 0 : cellValue = String.valueOf((int)cell.getNumericCellValue()); break; case 1 : cellValue = cell.getStringCellValue(); break; case 2 : cellValue = String.valueOf(cell.getDateCellValue()); break; case 3 : cellValue = ""; break; case 4 : cellValue = String.valueOf(cell.getBooleanCellValue()); break; case 5 : cellValue = String.valueOf(cell.getErrorCellValue()); break; } switch(j){//通过列数来判断对应插如的字段 //数据中不应该保护ID这样的主键记录 //case 0 : user.setId(Integer.valueOf(cellValue));break; case 0 : user.setUserName(cellValue);break; case 1 : user.setPassword(cellValue);break; case 2 : user.setFirstName(cellValue);break; case 3 : user.setLastName(cellValue);break; case 4 : user.setAddress(cellValue);break; } } userList.add(user); } userIntoDB(userList); }catch(IOException e){ e.printStackTrace(); } } private void userIntoDB(List<User> userList) { // TODO Auto-generated method stub int num = userList.size(); for(int i=0; i<num; i++){ userService.add(userList.get(i)); } }
- struts2将excel文件内容导入数据库 ----- POI
- java poi技术将Excel文件内容导入数据库
- 将Excel文件导入数据库(POI+Excel+MySQL)(jsp页面导入)
- 将Excel文件导入数据库(POI+Excel+MySQL+jsp页面导入)第一次优化
- 利用POI将数据库数据导入Excel
- Java 利用POI实现将数据库中内容导入到EXcel中
- Java 利用POI实现将数据库中内容导入到EXcel中
- POI 导入导出Excel文件到数据库
- POI 导入导出Excel文件到数据库
- poi将数据库数据导出excel文件
- ASP.NET MVC4上传文件,并将excel内容导入数据库,导入后删除文件
- 将数据库中的内容导入到excel
- 文件信息批量导入数据库(Struts2实现文件上传,POI实现Excel文件读取并写入数据库) .
- 文件信息批量导入数据库(Struts2实现文件上传,POI实现Excel文件读取并写入数据库)
- poi导入excel文件
- struts2+ajaxSubmit+poi导入excel
- struts2结合poi-3.7实现excel文件数据导入
- ssm利用poi将excel数据导入数据库
- EOF在linux和window系统中
- Linphone 点对点通话
- RTMP协议以及提取RTMP视频流组成H264视频文件
- java中的移位运算符
- hh.exe 隐藏参数 chm反编译命令参数
- struts2将excel文件内容导入数据库 ----- POI
- DOS命令查看局域网所有IP
- android模拟器如何输入中文
- ext自动补全
- Set_XXX_Property Build-Ins
- jenkins教程1
- POCO C++库学习和分析 -- 通知和事件 ( 二 )
- Javascript诞生记
- centos 4.8 yum源