- 浏览: 600545 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (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 325java -jar spring-boot-druid-0.0 ... -
List 边遍历,边删除?
2020-07-17 16:51 560新手常犯的错误 可能很 ... -
servlet 文件上传
2012-08-10 10:52 1178org.apache.commons.fileupload 文 ... -
pdf 简单连接servlet
2012-07-25 10:05 1115protected void doGet(HttpSe ... -
应用 HttpClient 来对付各种顽固的WEB服务器
2012-04-11 17:38 996一般的情况下我们都是使用IE或者Navigator浏览器来访问 ... -
MAVEN2入门学习心得(4)-知识汇集
2012-01-11 14:16 1020一、创建Spring+Hibernate+Activiti+V ... -
MAVEN2入门学习心得(3)-仓库管理器Nexus相关
2012-01-11 14:11 1349以前觉得Nexus搭建太简单,没有留下学习重点,重新温习起来又 ... -
MAVEN2入门学习心得(2)-仓库相关
2012-01-11 14:08 1293MAVEN2的仓库基本可以分为主机仓库、代理仓库、本地仓库。 ... -
MAVEN2入门学习心得(1)-插件相关
2012-01-11 14:02 1170MAVEN2涉及到很多插件,掌握插件的学习方式很重要,要不然接 ... -
restful webserice
2011-08-11 20:06 957package com.onetown.action.admi ... -
java.lang.OutOfMemoryError: PermGen space及其解决方法
2011-08-05 10:00 880这个问题是我的工程中 ... -
ibatis 一级缓存 功能
2011-01-28 15:50 2144前几天和朋友讨论数据库Cache的时候,谈到了iBatis框架 ... -
内存溢出的解决
2011-01-28 15:07 1092内存溢出虽然很棘手 ... -
oracle sql 基础
2010-12-25 14:52 926视图; create or replace view my_v ... -
计算 上一个 工作日的 自定义函数
2010-09-06 10:31 1838算法描述 1.获取日期参数,然后自减一 2.判断该日期是否是 ... -
Java 简单 计算任意两个日期之间的工作天数
2010-09-06 09:20 1782主要思路: 对于任意2个日期比如:date_start=201 ... -
java file
2010-09-05 21:37 1289追加文件尾部 public void testPrintWri ... -
验证码
2010-08-31 09:07 1052package com.pa.util; import ... -
java List与Array 转换
2010-08-31 08:57 35494public static void main(String[ ... -
java property 配置文件 用法
2010-08-14 18:12 4989在我们平时写程序的时候,有些参数是经常改变的,而这种改变不是我 ...
相关推荐
- 数据校验:在将Excel数据导入数据库前,进行数据格式和完整性检查。 - 错误处理:捕获并处理可能出现的异常,如文件读取错误、数据库连接失败等。 - 性能优化:大量数据导入时,可以使用批处理操作,减少与数据库...
1. **Excel到数据库**: 当你需要将Excel中的数据存储到数据库中时,可以使用SQL Server Management Studio (SSMS) 的“导入和导出数据”工具。该工具支持从Excel文件直接导入数据到SQL Server表中,只需要指定Excel...
其次,从数据库导出数据到Excel则相对简单: 1. 查询数据:使用SQL语句查询需要导出的数据,可以是整个表,也可以是满足特定条件的部分数据。 2. 输出格式设置:确定数据导出的格式,例如CSV或TSV,这两种格式可以...
在本项目中,"SpringBootMybatis+poi+Thymeleaf实现excel文件数据导入到数据库以及从数据库将数据导出成excel.zip",我们主要关注的是如何利用Java技术栈来处理Excel文件,并与数据库进行交互。以下是相关知识点的...
4. **Power Query/Microsoft Query**:Power Query(在Excel 2016及以后版本中)或Microsoft Query(在较早版本中)允许用户通过查询语言直接与SQL Server交互,支持数据的导入和导出。 5. **编程接口**:对于自动...
首先,我们来看Excel导入数据库的过程。通常,这涉及到读取Excel文件的数据并将其存储到数据库中。在Python中,我们可以使用pandas库来处理Excel文件(通过`pandas.read_excel()`函数)和SQLAlchemy库来与数据库进行...
在Java编程环境中,将Excel数据导入到数据库以及将数据库数据导出到Excel是常见的数据处理需求。本篇文章将深入探讨如何使用Java实现这两个功能,主要涉及的技术栈包括Apache POI库用于操作Excel,以及JDBC(Java ...
在本项目中,"spring boot+mybatis plus+easy poi实现数据库导出成excel和excel导入到数据库",开发者利用了Spring Boot、MyBatis Plus和EasyPoi库来实现了一个功能强大的数据交互系统,允许用户将数据库中的数据...
这个"asp将EXCEL导入导出数据库原程序"提供了一个解决方案,能够方便地将Excel中的数据存入MSSQL数据库,同时也能将数据库中的数据导出到Excel文件。 首先,我们需要了解如何使用ASP连接MSSQL数据库。通常,这涉及...
### Excel导入数据到Oracle数据库详解 #### 一、前言 在日常工作中,我们经常会遇到需要将Excel中的数据批量导入到Oracle数据库的情况。这一过程不仅可以提高工作效率,还能确保数据的一致性和准确性。本文将详细...
4. Excel插件:例如,SQL Server有SQL Server Import and Export Wizard,可以导出Excel数据到SQL Server。 5. 自定义脚本:使用VBA(Visual Basic for Applications)编写宏,实现Excel数据的自动化导入。 四、...
在IT领域,Excel和数据库之间的数据交互是常见的需求,特别是...无论是Excel导入数据库还是数据库数据导出到Excel,都需要对数据格式、数据转换、异常处理和性能优化有深入的理解,以确保数据的准确性和系统的稳定性。
标题中的“EXCEL导入数据库及反向导出 源代码”指的是使用编程技术实现Excel文件与数据库之间的数据交换。这种操作在数据处理和分析中非常常见,特别是在需要大量数据导入到数据库进行处理或者从数据库导出数据进行...
总的来说,熟练掌握数据库和Excel之间的导入导出技巧,对于数据工作者来说是至关重要的技能。这不仅可以提高工作效率,还能在各种数据处理和分析场景中发挥关键作用。通过不断学习和实践,我们可以更好地应对日益...
标题 "Excel大量数据快速导入数据库源码" 描述的是一个编程解决方案,用于高效地将Excel电子表格中的大量数据批量导入到数据库系统中。这个过程通常涉及到数据预处理、数据清洗和数据传输等步骤,是数据处理工作流程...
本文将深入探讨“Excel导出数据到数据库”这一主题,讲解如何高效地将Excel中的数据导入到数据库系统,以实现数据的统一管理和分析。 一、Excel的数据整理与预处理 在导出数据之前,首先需要对Excel中的数据进行...
1. **Excel导入数据库**: - **直接连接**:使用Excel的数据连接功能,可以直接连接到数据库,实时获取数据,形成数据透视表或图表。 - **CSV/文本文件**:将Excel数据另存为CSV(逗号分隔值)文件,然后通过...
首先,Excel导入数据库功能的实现主要涉及两部分:数据读取和数据库写入。使用C#,我们可以借助Microsoft.Office.Interop.Excel库来操作Excel文件,读取其中的数据。通过创建Excel应用程序对象,打开工作簿,选择...
对于不熟悉SQL的用户,很多数据库管理系统提供了图形化界面,如SQL Server的SSIS(SQL Server Integration Services)、MySQL的LOAD DATA INFILE等,可以设置数据源、目标表和映射规则,实现Excel到数据库的批量导入...