excel导入数据库及反向导出.doc_第1页
excel导入数据库及反向导出.doc_第2页
excel导入数据库及反向导出.doc_第3页
excel导入数据库及反向导出.doc_第4页
excel导入数据库及反向导出.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

EXCEL导入数据库及数据库数据导出到EXCEL关键字: 报表、jel 很久没有发BLOG,呵呵,是因为最近在帮助朋友在做一个项目,很忙。呵呵,我觉得生活就应该是这样,年轻时候的忙碌是为年老时候的悠闲吧。 主要涉及内容及技术: javaexcel api jasonreport及编辑工具ireport和数据库技术。导入及导出EXCEL解决思路: 使用javaexcel api导入普通的EXCEL表格,就是没有合并单元格的规范数据,如果导出有规则的EXCEL也使用JAVAEXECEL API,对中文支持比较好。 如果要导出报表可打印的EXCEL,使用ireport为工具图形化画出报表,并使用jasonreprt控制导出,展示给客户端。 主要代码有: 连接数据库的方法:java 代码1. importjava.sql.Connection; 2. importjava.sql.ResultSet; 3. importjava.sql.SQLException; 4. importjava.sql.Statement; 5. importjava.util.Hashtable; 6. importjava.util.Vector; 7. importorg.apache.log4j.Logger; 8. publicclassDBOperate 9. 10. /* 11. *得到sequence的nextval 12. *paramsequenceName 13. *return 14. */ 15. publicstaticStringgetSequence(StringsequenceName) 16. Stringnextval=; 17. if(sequenceName=null|.equals(sequenceName) 18. System.out.println(sequenceNamenameisnull!); 19. returnnull; 20. else 21. sequenceName=sequenceName.toUpperCase(); 22. Stringsql=select+sequenceName+.nextvalnextidfromuser_sequenceswheresequence_name= 23. +sequenceName+; 24. 25. Statementstmt=null; 26. Connectionconn=null; 27. ResultSetrs=null; 28. 29. try 30. conn=TreatDB.getConnDB(); 31. if(conn!=null) 32. stmt=conn.createStatement(); 33. rs=stmt.executeQuery(sql); 34. 35. if(rs!=null) 36. while(rs.next() 37. nextval=rs.getString(nextid); 38. 39. 40. 41. catch(SQLExceptione) 42. System.out.println(SQLException:+e); 43. finally 44. try 45. if(rs!=null)rs.close(); 46. if(stmt!=null)stmt.close(); 47. if(conn!=null)conn.close(); 48. catch(SQLExceptione) 49. /TODOAuto-generatedcatchblock 50. 51. 52. returnnextval; 53. 54. 55. /* 56. *一个插入、更新数据表的通用方法,传入一个sql脚本 57. *paramsql:要进行操作的脚本 58. *return:发生变化的条数 59. */ 60. publicstaticintupdateSql(Stringsql) 61. StringdbName=; 62. Connectionconn=null; 63. Statementstmt=null; 64. intresult=0; 65. try 66. conn=TreatDB.getConnDB(dbName); 67. if(conn!=null) 68. stmt=conn.createStatement(); 69. /(sql); 70. result=stmt.executeUpdate(sql); 71. mit(); 72. 73. 74. catch(SQLExceptione) 75. try 76. conn.rollback(); 77. catch(SQLExceptione1) 78. System.out.println(updatesqlerror:+e); 79. 80. 81. System.out.println(updatesqlerror:+e); 82. System.out.println(sql:+sql); 83. finally 84. try 85. if(stmt!=null) 86. stmt.close(); 87. if(conn!=null) 88. conn.close(); 89. catch(Exceptionex) 90. /donothing; 91. 92. 93. 94. returnresult; 95. 96. 97. 导入EXCEL的程序代码:java 代码1. /* 2. *将Excel文件中的数据添加到数据库中 3. *新的监理信息modifybyheweiya 4. * 5. *paramxlsFile,Excel文件 6. *return 7. */ 8. publicStringaddJLXlsForm(InputStreamis) 9. 10. StringerrStr=; 11. Stringresult=; 12. 13. try 14. Workbookrwb=Workbook.getWorkbook(is); 15. /Workbookrwb=Workbook.getWorkbook(newFile(filePath+fileName); 16. /获取第一张Sheet表 17. Sheetsheet=rwb.getSheet(0); 18. /获取总列数 19. intrsColumns=sheet.getColumns(); 20. System.out.println(rsColumns=+rsColumns); 21. 22. /获取总行数 23. intrsRows=sheet.getRows(); 24. System.out.println(rsRows=+rsRows); 25. 26. if(rsColumns19) 27. errStr=错误原因:字段不全。; 28. vErr.addElement(errStr); 29. 30. 31. inti=0; 32. intstartRows=1; 33. intstartColumn=0; 34. while(startRows=6)issueDate_new=issueDate.substring(6)+issueDate.substring(3,5)+issueDate.substring(0,2); 47. 48. tmp=sheet.getCell(2,startRows); 49. StringapproveDate=tmp.getContents(); 50. Stringapprove_date_new=; 51. if(approveDate!=null&approveDate.length()=6)approve_date_new=approveDate.substring(6)+approveDate.substring(3,5)+approveDate.substring(0,2); 52. 53. tmp=sheet.getCell(3,startRows); 54. StringcerNo=tmp.getContents(); 55. 56. tmp=sheet.getCell(4,startRows); 57. StringjianliMajor=tmp.getContents(); 58. 59. tmp=sheet.getCell(5,startRows); 60. Stringdepartment=tmp.getContents(); 61. 62. tmp=sheet.getCell(6,startRows); 63. StringjianliName=tmp.getContents(); 64. 65. tmp=sheet.getCell(7,startRows); 66. StringjianliSex=tmp.getContents(); 67. 68. /毕业院校 69. tmp=sheet.getCell(8,startRows); 70. Stringdegree=tmp.getContents(); 71. 72. /毕业时间 73. tmp=sheet.getCell(9,startRows); 74. Stringcooleage=tmp.getContents(); 75. 76. /所学专业 77. tmp=sheet.getCell(10,startRows); 78. Stringcompany=tmp.getContents(); 79. 80. /职务 81. tmp=sheet.getCell(11,startRows); 82. Stringtech_post=tmp.getContents(); 83. 84. /工作单位 85. tmp=sheet.getCell(12,startRows); 86. Stringaddress=tmp.getContents(); 87. 88. /职称 89. tmp=sheet.getCell(13,startRows); 90. Stringpostcode=tmp.getContents(); 91. 92. tmp=sheet.getCell(14,startRows); 93. StringjianliTel=tmp.getContents(); 94. 95. tmp=sheet.getCell(15,startRows); 96. Stringmobile=tmp.getContents(); 97. 98. tmp=sheet.getCell(16,startRows); 99. Stringemail=tmp.getContents(); 100. 101. tmp=sheet.getCell(17,startRows); 102. Stringbirthday=tmp.getContents(); 103. Stringbirthday_new=; 104. if(birthday!=null&birthday.length()=6)birthday_new=birthday.substring(6)+birthday.substring(3,5)+birthday.substring(0,2); 105. 106. 107. tmp=sheet.getCell(18,startRows); 108. Stringjianli_type=tmp.getContents(); 109. /加入密码modifybyheweiya2007/05/17 110. Stringsql=insertintojianlivalues(+zj_id+,+sfzh+,to_date(+issueDate_new+,yyyymmdd),to_date( 111. +approve_date_new+,yyyymmdd),+cerNo+,+jianliMajor+,+department+, 112. +jianliName+,+jianliSex+,+degree+,+cooleage+, 113. +company+,+tech_post+,+address+,+postcode+,+jianliTel 114. +,+mobile+,+email+,to_date(+birthday_new+,yyyymmdd),+jianli_type+,null,null,null,null,+sfzh.substring(0,10)+,null,null,null,null,null); 115. 116. inta=DBOperate.updateSql(sql); 117. 118. System.out.println(成功导入第+startRows+条); 119. if(a=0) 120. errStr=errStr+添加失败:库中已有此记录,或有值不符合库中设定的字段属性!; 121. elseif(a=1) 122. result=添加成功; 123. else 124. errStr=errStr+添加失败:连接数据库失败; 125. 126. 127. 128. 129. if(!.equals(errStr) 130. vErr.addElement(导入:+【+startRows+】+(错误原因:+errStr); 131. errStr+=导入:+【+startRows+】+(关键字段为:姓名:+jianliName+,身份证号为:+sfzh+,监理证书号为:+cerNo+); 132. else 133. vOk.add(ht); 134. 135. 136. startRows+; 137. 138. 139. rwb.close(); 140. result=成功导入:+vOk.size()+条记录。错误导入:+vErr.size()+条记录,错误记录及原因如下:+errStr; 141. System.out.println(vOK.size()=+vOk.size(); 142. System.out.println(VErr.size()=+vErr.size(); 143. returnresult; 144. catch(Exceptione) 145. result=在导入的过程当中发生了错误,其中错误的原因是:+e.toString(); 146. returnresult; 147. 148. 导出报表的代码:java 代码1. /* 2. * 3. *导出报表 4. * 5. *param 6. *return 7. *throws 8. */ 9. publicActionForwardExportXLS(ActionMappingmapping,ActionFormform, 10. HttpServletRequestrequest,HttpServletResponseresponse) 11. throwsException 12. HttpSessionsession=request.getSession(); 13. StringCerNo=(String)session.getAttribute(CerNo);/登录名 14. StringJianliName=(String)session.getAttribute(JianliName);/角色ID 15. if(CerNo=null|JianliName=null) 16. returnmapping.findForward(Fail); 17. 18. Filebusiness_rpt=newFile(getServlet().getServletConfig() 19. .getServletContext().getRealPath(/report/water_jianli.jasper); 20. JasperPrintjasperPrint=null; 21. 22. Mapparameters=newHashMap(); 23. Jianlijianli=personalDAO.GetJianli(CerNo); 24. 25. ReportModelreport_user=newReportModel(); 26. report_user.setCol1(jianli.getJianliName();/姓名 27. report_user.setCol2(jianli.getJianliSex();/性别 28. report_user.setCol3(jianli.getDegree();/学历 29. report_user.setCol4(+jianli.getSfzh();/身份证 30. report_user.setCol5(jianli.getTechPost();/职称 31. report_user.setCol6(jianli.getCerNo();/证书编号 32. report_user.setCol7(jianli.getJianliMajor();/监理专业 33. if(jianli.getOrgs()!=null) 34. report_user.setCol8(jianli.getOrgs().getOrgName();/隶属单位 35. 36. report_u

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论