- 浏览: 583464 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (268)
- ext基础 (72)
- Java基础 (68)
- jquery (14)
- oracle (21)
- sqlserver (7)
- linux (2)
- webserver (1)
- C/C++ (1)
- sql (9)
- IDE (2)
- java 智能卡 (1)
- mysql (6)
- ibatis (2)
- struts2 (3)
- cvs (1)
- 服务器 (1)
- html (11)
- freemarker (4)
- liferay (2)
- jMS (1)
- iphone (1)
- c# (1)
- Android (11)
- wince (6)
- javascript (4)
- ps (1)
- hibernate (1)
- 其他 (3)
最新评论
-
ilyq:
请问,px.gif 在哪里
斜线表头 -
jisang:
没看懂,第一个org.js和最后的js什么关系,可否发我一份完 ...
用ExtJS 实现动态载入树(Load tree) -
JavaStudyEye:
我去,能否搞个正确点的,,,
<#list ...
freemarker 遍历map 对象 -
PangSir:
大爱,简直是大爱!!困扰这么久以来的问题,虽然知道是CSS的问 ...
ExtJs checkbox radiobox 问题 汇总 -
skynet_java:
有demo嘛!邮箱:think_world@foxmail.c ...
消息推送服务需求 - 服务器开发、客户端开发
主要涉及内容及技术:
javaexcel api
jasonreport及编辑工具ireport和数据库技术。
导入及导出EXCEL解决思路:
使用javaexcel api导入普通的EXCEL表格,就是没有合并单元格的规范数据,如果导出有规则的EXCEL也使用JAVAEXECEL API,对中文支持比较好。
如果要导出报表可打印的EXCEL,使用ireport为工具图形化画出报表,并使用jasonreprt控制导出,展示给客户端。
主要代码有:
连接数据库的方法:
--------------------------------------------------------------------
导入EXCEL的程序代码:
------------------------------------------------------------------------------
导出报表的代码:
javaexcel api
jasonreport及编辑工具ireport和数据库技术。
导入及导出EXCEL解决思路:
使用javaexcel api导入普通的EXCEL表格,就是没有合并单元格的规范数据,如果导出有规则的EXCEL也使用JAVAEXECEL API,对中文支持比较好。
如果要导出报表可打印的EXCEL,使用ireport为工具图形化画出报表,并使用jasonreprt控制导出,展示给客户端。
主要代码有:
连接数据库的方法:
import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Hashtable; import java.util.Vector; import org.apache.log4j.Logger; public class DBOperate { /** * 得到sequence的nextval * @param sequenceName * @return */ public static String getSequence(String sequenceName) { String nextval = ""; if(sequenceName == null || "".equals(sequenceName)) { System.out.println("sequenceName name is null!"); return null; } else { sequenceName = sequenceName.toUpperCase(); String sql = "select " + sequenceName + ".nextval nextid from user_sequences where sequence_name = '" + sequenceName + "'"; Statement stmt = null; Connection conn = null; ResultSet rs = null; try { conn = TreatDB.getConnDB(""); if (conn != null) { stmt = conn.createStatement(); rs = stmt.executeQuery(sql); if(rs != null) { while(rs.next()) { nextval = rs.getString("nextid"); } } } } catch (SQLException e) { System.out.println("SQLException : " + e); } finally { try { if(rs != null) rs.close(); if(stmt != null) stmt.close(); if(conn != null) conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block } } return nextval; } } /** * 一个插入、更新数据表的通用方法,传入一个sql脚本 * @param sql :要进行操作的脚本 * @return :发生变化的条数 */ public static int updateSql(String sql) { String dbName = ""; Connection conn = null; Statement stmt = null; int result = 0; try { conn = TreatDB.getConnDB(dbName); if (conn != null) { stmt = conn.createStatement(); //logger.info(sql); result = stmt.executeUpdate(sql); conn.commit(); } } catch (SQLException e) { try { conn.rollback(); } catch (SQLException e1) { System.out.println("update sql error: "+e); } System.out.println("update sql error: "+e); System.out.println("sql: " + sql); } finally { try { if (stmt != null) stmt.close(); if (conn != null) conn.close(); } catch (Exception ex) { //do nothing; } } return result; } }
--------------------------------------------------------------------
导入EXCEL的程序代码:
/** * 将Excel文件中的数据添加到数据库中 * 新的监理信息 modify by heweiya * * @param xlsFile,Excel文件 * @return */ public String addJLXlsForm(InputStream is) { String errStr = ""; String result = ""; try { Workbook rwb = Workbook.getWorkbook(is); // Workbook rwb = Workbook.getWorkbook(new File(filePath+fileName)); // 获取第一张Sheet表 Sheet sheet = rwb.getSheet(0); // 获取总列数 int rsColumns = sheet.getColumns(); System.out.println("rsColumns = " + rsColumns); // 获取总行数 int rsRows = sheet.getRows(); System.out.println("rsRows = " + rsRows); if (rsColumns < 19) { errStr = "错误原因:字段不全。"; vErr.addElement(errStr); } int i = 0; int startRows = 1; int startColumn = 0; while (startRows < rsRows) { Hashtable ht = new Hashtable(); String zj_id = DBOperate.getSequence("S_JIANLI"); Cell tmp = sheet.getCell(0,startRows); String sfzh = tmp.getContents(); tmp = sheet.getCell(1,startRows); String issueDate = tmp.getContents(); String issueDate_new = ""; if(issueDate != null && issueDate.length()>=6) issueDate_new = issueDate.substring(6) + issueDate.substring(3,5) + issueDate.substring(0,2); tmp = sheet.getCell(2,startRows); String approveDate = tmp.getContents(); String approve_date_new = ""; if(approveDate != null && approveDate.length()>=6) approve_date_new = approveDate.substring(6) + approveDate.substring(3,5) + approveDate.substring(0,2); tmp = sheet.getCell(3,startRows); String cerNo = tmp.getContents(); tmp = sheet.getCell(4,startRows); String jianliMajor = tmp.getContents(); tmp = sheet.getCell(5,startRows); String department = tmp.getContents(); tmp = sheet.getCell(6,startRows); String jianliName = tmp.getContents(); tmp = sheet.getCell(7,startRows); String jianliSex = tmp.getContents(); //毕业院校 tmp = sheet.getCell(8,startRows); String degree = tmp.getContents(); //毕业时间 tmp = sheet.getCell(9,startRows); String cooleage = tmp.getContents(); //所学专业 tmp = sheet.getCell(10,startRows); String company = tmp.getContents(); //职务 tmp = sheet.getCell(11,startRows); String tech_post = tmp.getContents(); // 工作单位 tmp = sheet.getCell(12,startRows); String address = tmp.getContents(); // 职称 tmp = sheet.getCell(13,startRows); String postcode = tmp.getContents(); tmp = sheet.getCell(14,startRows); String jianliTel = tmp.getContents(); tmp = sheet.getCell(15,startRows); String mobile = tmp.getContents(); tmp = sheet.getCell(16,startRows); String email = tmp.getContents(); tmp = sheet.getCell(17,startRows); String birthday = tmp.getContents(); String birthday_new = ""; if(birthday != null && birthday.length()>=6) birthday_new = birthday.substring(6) + birthday.substring(3,5) + birthday.substring(0,2); tmp = sheet.getCell(18,startRows); String jianli_type = tmp.getContents(); //加入密码 modify by heweiya 2007/05/17 String sql = "insert into jianli values('" + zj_id + "', '" + sfzh + "', to_date('" + issueDate_new + "','yyyymmdd'),to_date('" + approve_date_new + "','yyyymmdd'),'" + cerNo + "','" + jianliMajor + "','" + department + "','" + jianliName + "','" + jianliSex + "','" + degree + "','" + cooleage + "','" + company + "','" + tech_post + "','" + address + "','" + postcode + "','" + jianliTel + "','" + mobile + "','" + email + "',to_date('" + birthday_new + "','yyyymmdd'),'" + jianli_type + "',null,null,null,null,"+sfzh.substring(0, 10)+",null,null,null,null,null)"; int a = DBOperate.updateSql(sql); System.out.println("成功导入第"+startRows+"条"); if (a == 0) { errStr = errStr + "添加失败:库中已有此记录,或有值不符合库中设定的字段属性!"; } else if (a == 1) { result = "添加成功"; } else { errStr = errStr + "添加失败:连接数据库失败"; } if (!"".equals(errStr)) { vErr.addElement("导入:" + "【" + startRows + "】" + "<br>(错误原因:" + errStr); errStr += "导入:" + "【" + startRows + "】" + "<br>(关键字段为:姓名:"+jianliName+",身份证号为:"+sfzh+",监理证书号为:"+cerNo+")<br>"; } else { vOk.add(ht); } startRows++; } rwb.close(); result = "成功导入:" + vOk.size()+"条记录。<br> 错误导入: " + vErr.size()+"条记录,错误记录及原因如下:<br>"+errStr; System.out.println("vOK.size() = " + vOk.size()); System.out.println("VErr.size() = " + vErr.size()); return result; } catch (Exception e) { result = "在导入的过程当中发生了错误,其中错误的原因是:" + e.toString(); return result; } }
------------------------------------------------------------------------------
导出报表的代码:
/** * * 导出报表 * * @param * @return * @throws */ public ActionForward ExportXLS(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { HttpSession session = request.getSession(); String CerNo = (String) session.getAttribute("CerNo");// 登录名 String JianliName = (String) session.getAttribute("JianliName");// 角色ID if (CerNo == null || JianliName == null) { return mapping.findForward("Fail"); } File business_rpt = new File(getServlet().getServletConfig() .getServletContext().getRealPath("/report/water_jianli.jasper")); JasperPrint jasperPrint = null; Map parameters = new HashMap(); Jianli jianli = personalDAO.GetJianli(CerNo); ReportModel report_user = new ReportModel(); report_user.setCol1(jianli.getJianliName());// 姓名 report_user.setCol2(jianli.getJianliSex());// 性别 report_user.setCol3(jianli.getDegree());// 学历 report_user.setCol4("'" + jianli.getSfzh());// 身份证 report_user.setCol5(jianli.getTechPost());// 职称 report_user.setCol6(jianli.getCerNo());// 证书编号 report_user.setCol7(jianli.getJianliMajor());// 监理专业 if (jianli.getOrgs() != null) { report_user.setCol8(jianli.getOrgs().getOrgName());// 隶属单位 } report_user.setCol10(jianli.getAddress()); report_user.setCol11(jianli.getJianliTel()); /** * 加入简历的东东 */ List Ljianli = assistDAO.GetEngineerAssist(CerNo); if (Ljianli != null) { for (int i = 0; i < Ljianli.size(); i++) { Assistant assist = (Assistant) Ljianli.get(i); String begindate = ""; String enddate = ""; SimpleDateFormat sfDate = new SimpleDateFormat("yyyy/MM/dd"); if (assist.getBegindate() != null) { begindate = sfDate.format(assist.getBegindate()); } if (assist.getEnddate() != null) { enddate = sfDate.format(assist.getEnddate()); } String deptname = (assist.getAtdeptname() == null)?"":assist.getAtdeptname(); String zewu = (assist.getAssistname() == null)?"":assist.getAssistname(); String huihua = "开始日期为:" + begindate + ",结束日期为:" + enddate + ",所在工作单位"+deptname+",担任职务为:" + zewu+"。"; if (assist.getOther() != null){ &nbs
发表评论
-
springboot 发布
2022-01-08 16:53 142java -jar spring-boot-druid-0.0 ... -
List 边遍历,边删除?
2020-07-17 16:51 408新手常犯的错误 可能很 ... -
servlet 文件上传
2012-08-10 10:52 1100org.apache.commons.fileupload 文 ... -
pdf 简单连接servlet
2012-07-25 10:05 1070protected void doGet(HttpSe ... -
应用 HttpClient 来对付各种顽固的WEB服务器
2012-04-11 17:38 946一般的情况下我们都是使用IE或者Navigator浏览器来访问 ... -
MAVEN2入门学习心得(4)-知识汇集
2012-01-11 14:16 972一、创建Spring+Hibernate+Activiti+V ... -
MAVEN2入门学习心得(3)-仓库管理器Nexus相关
2012-01-11 14:11 1294以前觉得Nexus搭建太简单,没有留下学习重点,重新温习起来又 ... -
MAVEN2入门学习心得(2)-仓库相关
2012-01-11 14:08 1249MAVEN2的仓库基本可以分为主机仓库、代理仓库、本地仓库。 ... -
MAVEN2入门学习心得(1)-插件相关
2012-01-11 14:02 1120MAVEN2涉及到很多插件,掌握插件的学习方式很重要,要不然接 ... -
restful webserice
2011-08-11 20:06 907package com.onetown.action.admi ... -
java.lang.OutOfMemoryError: PermGen space及其解决方法
2011-08-05 10:00 843这个问题是我的工程中 ... -
ibatis 一级缓存 功能
2011-01-28 15:50 2064前几天和朋友讨论数据库Cache的时候,谈到了iBatis框架 ... -
内存溢出的解决
2011-01-28 15:07 1038内存溢出虽然很棘手 ... -
oracle sql 基础
2010-12-25 14:52 845视图; create or replace view my_v ... -
计算 上一个 工作日的 自定义函数
2010-09-06 10:31 1763算法描述 1.获取日期参数,然后自减一 2.判断该日期是否是 ... -
Java 简单 计算任意两个日期之间的工作天数
2010-09-06 09:20 1736主要思路: 对于任意2个日期比如:date_start=201 ... -
java file
2010-09-05 21:37 1246追加文件尾部 public void testPrintWri ... -
验证码
2010-08-31 09:07 1008package com.pa.util; import ... -
java List与Array 转换
2010-08-31 08:57 35429public static void main(String[ ... -
java property 配置文件 用法
2010-08-14 18:12 4944在我们平时写程序的时候,有些参数是经常改变的,而这种改变不是我 ...
相关推荐
EXCEL导入数据库及数据库数据导出到EXCEL,java导出文件,
excel和数据库之间数据的导入导出
Excel导入导出数据库Excel批量导入导出数据库源码,以及一些解决乱码收藏的博客知识
SpringBootMybatis+poi+Thymeleaf实现excel文件数据导入到数据库以及从数据库将数据导出成excel
jsp+Servlet实现的最简单的Excel表导入导出数据库的操作
百万级数据在Excel和SqlServer之间相互导入导出。
spring boot+mybatis plus+easy poi实现数据库导出成excel和excel导入到数据库
可以将excel中的内容导入到mssql数据库中,也可以将MSSQL中的数据导出到Excel中.在导入时还可选择字段进行导入,并且原程序全部公开
SQL Server数据库导出,excel导入
以往的易程序导出excel太慢了,特别是数据比较多的时候,本程序写excel模板的方法极速导入导出excel或者数据库,1万条数据不用一秒钟的时间,速度杠杠的,大家可以试试效果。本例子是用超级列表框做例子,如有需要...
1.首先把excel文档(03和07文档格式均支持,能手动选择需要的工作表)导入到datagridview中显示,查找错误、编辑后,直接把datagridview中的数据导入到数据库中。 2.再次更新数据后,还可以自动导出excel文档备份。...
2、java读取数据库数据,并导出为excel文件。 3、README.md中有详细的操作步骤示例。 使用说明: 1. 先使用postman导入:other/excel相关.postman_collection.json 2. 导入sql到数据库:other/excel.sql 3. idea导入...
Java实现excel文档数据导入数据库、导出excel
本文实例讲述了PHP将Excel导入数据库及数据库数据导出至Excel的方法。分享给大家供大家参考。具体实现方法如下: 一.导入 导入需要使用能读取Excel的组件,网上也有比较好的组件,这里分享我使用的:下载 提取码:...
使Excel数据同步到数据库中的源码
spring3.0 MVC Poi操作excel批量导入数据库和可以从数据库导出数据成excel表方便数据分析。
springboot+mybatis+pol实现excel文件数据导入到数据库以及从数据库将数据导出成excel
一个通用从数据库导出excel、excel导入数据库组件的Java项目程序所用到的jar包。
B、将oracle中的表导入到excel,再将excel导入到mysql。 以上两种方法,都能运行,但第一种方法较好。第二种方法,如果数据量特别大,将造成内存溢出,需要分批次导数据,比较麻烦,但该程序实现了分批次导数据的...