- 浏览: 76148 次
文章分类
最新评论
1.页面
2.控制层
3.导入
UpForm = Ext.extend(Ext.form.FormPanel, { id: 'up_form_id', constructor: function(config) { var newConfig = {}; Ext.apply(newConfig, config || {}, { idProperty: 'up_form', labelWidth: 80, border: false, frame: true, autoScroll: true, fileUpload : true, buttonPosition : 'bottom', bodyStyle: "padding: 8px", trackResetOnLoad: false, defaults: { border: false, bodyStyle: 'padding: 5px 25px 5px 5px;', layout: 'form', labelWidth: 120 }, items: [{ xtype: 'textfield', fieldLabel: '文件名称', id: 'form_file', inputType: 'file', allowBlank: false, blankText: '文件名称不能为空.', anchor: '90%' // anchor width by percentage },{ xtype: 'hidden', name: 'fileName' }] , buttonAlign:'center', buttons : [{ text : '上传',//提交按钮 iconCls: 'icon_disk', handler : function(){ if(upForm.getForm().isValid()){ var fileName = upForm.form.findField("form_file").getValue(); // upForm.form.findField("fileName").setValue(fileName); // alert(fileName); upForm.form.submit({ waitMsg : '正在上传文件,请稍候......',//提示信息 waitTitle : '请稍候',//标题 url : jutil.getRootPath()+'/nurseInfoImport.do', method : 'post', success : function(form, action) { Ext.MessageBox.alert('提交失败', action.result.msg); Ext.getCmp("form_file").reset(); }, failure:function(form,action){//加载失败的处理函数 Ext.Msg.alert('提示','导入失败!'); } }); } } },{ text: '取消', iconCls: 'icon_cancel', handler: function() { var grid=Ext.getCmp(config.title_id); grid.hide(); }.createDelegate(this) }] }); UpForm.superclass.constructor.call(this, newConfig); } });
2.控制层
package com.alensic.nursing.sysmgr; import java.io.IOException; import java.util.Iterator; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.tomcat.util.http.fileupload.DiskFileUpload; import org.apache.tomcat.util.http.fileupload.FileItem; /** * 人员信息导入 * @author * */ public class NurseInfoImportServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { try { String tempPath = ""; System.out.println("开始进行文件上传"); request.setCharacterEncoding("UTF-8"); DiskFileUpload fu = new DiskFileUpload(); fu.setSizeMax(100*1024*1024); // 设置最大文件尺寸,这里是4MB fu.setSizeThreshold(4096); // 设置缓冲区大小,这里是4kb fu.setRepositoryPath(tempPath); // 设置临时目录 List fileItems = fu.parseRequest(request); // 得到所有的文件: Iterator i = fileItems.iterator(); // 依次处理每一个文件: while (i.hasNext()) { FileItem fi = (FileItem) i.next(); String fileName = fi.getName();// 获得文件名,这个文件名包括路径: if (fileName != null) { ImportExcel importNurse = new ImportExcel(); importNurse.importExcel(fi.getInputStream()); } } } catch (Exception e) { e.printStackTrace(); // 可以跳转出错页面 response.getWriter().print("{success:flase,message:'失败'}"); } } }
3.导入
package com.alensic.nursing.sysmgr; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.helix.core.context.MyApplicationContext; import com.alensic.nursing.hrmgr.NurseInfoDAO; /** * 人员信息导入excel * @author zhchen * */ public class ImportExcel { private Map map = new HashMap(); //错误信息 private List<Map> errorList = new ArrayList<Map>(); //excel中字段与数据库中的字段对应 private String excelRelationDataBase[][]={{"姓名","name"},{"性别","gender"},{"出生日期","birthday"}}; /** * 根据传入的文件创建工作簿 * * @author zhchen * @param filename * @return */ public List importExcel(InputStream filename){ try { HSSFWorkbook wb = new HSSFWorkbook(filename); return importExcel(wb); }catch (IOException e) { e.printStackTrace(); } return null; } /** * 导入excel * * @author zhchen * @param wb * @param user * @return */ public List importExcel(HSSFWorkbook wb) { map.clear(); errorList.clear(); List addList = new ArrayList(); HSSFSheet sheet = wb.getSheetAt(0); int firstRowNum = sheet.getFirstRowNum(); int lastRowNum = sheet.getLastRowNum(); //数组转换成集合 Map excelMap = this.ArrayToMap(excelRelationDataBase); //取得excel表头对应的序列号和表对应的字段 Map excelToData = this.excelHeaderToMap(sheet, excelMap, 0); for(int h = firstRowNum +1; h <= lastRowNum ;h++){ Map dataMap = new HashMap(); HSSFRow dataRow = sheet.getRow(h); //遍历需要保存到数据库的字段 Iterator it = excelToData.keySet().iterator(); for(;it.hasNext();){ int index = Integer.valueOf(it.next().toString()); dataMap.put(excelToData.get(index), dataRow.getCell(index)); } if(!dataMap.isEmpty()) addList.add(dataMap); } //保存 NurseInfoDAO nurseInfoDAO = dogetNurseDAO(); nurseInfoDAO.createBatch(addList); return null; } /** * 数组转换成集合 * * @author zhchen */ private Map ArrayToMap(String array[][]){ Map map = new HashMap(); int length = array.length; for(int i=0;i<length;i++){ map.put(array[i][0], array[i][1]); } return map; } /** * 取得excel表头对应的序列号和表对应的字段 * * @author zhchen * @param sheet 工作表 * @param excelmap 需要导入字段的集合 * @param rowNum 取excel第几行的表头 * * @return */ private Map excelHeaderToMap(HSSFSheet sheet,Map excelmap,int rowNum){ Map map = new HashMap(); HSSFRow dataRow = sheet.getRow(rowNum); int firstCellNum = dataRow.getFirstCellNum(); int lastCellNum = dataRow.getLastCellNum(); for(int i=firstCellNum;i<lastCellNum;i++){ String headerName = dataRow.getCell(i).toString(); Object tableHeaderName = excelmap.get(headerName); if(tableHeaderName != null){ map.put(i, tableHeaderName); } } return map; } /** * 取得DAO * * @author zhchen */ private NurseInfoDAO dogetNurseDAO(){ return (NurseInfoDAO)MyApplicationContext.getContext().getBean("nurseInfoDAO"); } }
发表评论
-
java生成word和pdf的几种方法
2014-05-22 10:40 1071引用1、Jacob是Java-COM Bridge的缩写,它在 ... -
excel单元格的宽度设置
2013-12-25 10:15 915sheet.setColumnWidth(columnSize ... -
excel打印边距设置
2013-12-25 10:14 500HSSFSheet sheet = workb ... -
excel导出
2013-07-19 15:35 805/** * 导出excel * 导出的excel只 ... -
jsp图片不在工程内的显示
2013-06-24 16:14 5691.src=‘请求路径’ 2.后台代码 public vo ... -
excel导入和导出--poi
2012-12-13 15:43 7621.jar包 网站http://www.apache.org/ ...
相关推荐
4.17.1 导入样式表 154 4.17.2 包含样式表 155 4.18 模板规则冲突的解决 156 4.19 [xsl:output]元素 157 4.19.1 指定输出文档的格式 158 4.19.2 输出xml声明 158 4.19.3 输出文档类型定义 159 4.19.4 输出...
主要内容包括web应用程序运行原理、主流集成开发工具(eclipse/myeclipse)和运行环境(tomcat)的配置和使用、servlet、jsp、jdbc、jsp表达式语言(el)、servlet监听器和过滤器、定制标记库、jstl、mvc模式、dao...
使用原始的servlet操作熟悉EJB的实体管理。 本实例主要功能:实现对员工、角色、账号、部门的关系管理。 本实例的实体设计:部门-员工:一对多。员工-账号:一对一。账号-角色:一对一。 主要采用EJB进行会话管理。...
JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part54
**JSP+Servlet+JavaBean+JDBC简单登录实例详解** 在Web开发中,构建一个用户登录系统是常见的需求。本实例将详细讲解如何利用JavaServer Pages (JSP)、Servlet、JavaBean以及Java Database Connectivity (JDBC) 来...
Servlet实例化、初始化、服务和销毁的过程,以及JSP转化为Servlet的过程。 3. **部署描述符** - web.xml文件是Web应用的部署描述符,定义了Servlet和JSP的相关配置,如Servlet映射、初始化参数等。 4. **EL...
在提供的实例中,`readExcel.asp`可能包含实现Excel数据导入Access的代码,而`excel.mdb`是Access数据库文件,`excel.xls`可能是用来测试导出的Excel文件。要理解并运行这些示例,你需要一个支持ASP的Web服务器环境...
这是一个以JSP、servlet、JavaBean实现MVC三层架构的简单例子,使用XML作为数据库连接的配置文件。 使用环境:eclipse_3.2、myeclipse_5.1、jdk_6.0、tomcat_5.5、sql server 2005 <br>----------------------...
这个实例结合了多个技术,包括Accordion布局、Servlet、Struts2以及JSON数据交互,以及Ext.tree.Panel组件,以创建一个功能丰富的用户界面。 Accordion布局是ExtJS中的一个布局管理器,它允许在一个区域内组织多个...
在Servlet的生命周期中,`init()`方法在Servlet实例化后首次被调用,用于初始化Servlet;`service()`方法处理客户端请求;而`destroy()`方法在Servlet销毁前执行,用于释放资源。源码中,我们可以看到这些方法的具体...
**Ajax+Servlet 实例** Ajax(Asynchronous JavaScript and XML)技术是现代Web开发中的关键组成部分,它允许在不刷新整个页面的情况下与服务器进行异步数据交互。Servlet是Java Web开发中的一个标准,用于处理和...
计算机导论第5章办公软件应用素材和实例-excel实例-食品公司销售情况(结果)
这个"Excel-VBA宏编程实例源代码-数据的导入导出-自动导入文本文件.zip"文件包专注于讲解如何利用VBA宏来实现数据的导入和导出,特别是从文本文件自动导入到Excel工作簿中的过程。以下是对这个主题的详细解释: 1. ...
本工程实例是将Ext Gantt与Java Web技术,即jsp(JavaServer Pages)和servlet结合的示例项目。 1. **Ext Gantt详解**: - **组件化设计**:Ext Gantt遵循MVC(Model-View-Controller)架构,允许开发者独立地处理...
在这个"Ext Gantt + jsp + servlet 工程实例"中,我们将探讨如何将Ext Gantt与Java后端技术,即JSP和Servlet相结合,构建一个完整的Web应用。 1. **Ext Gantt**: Ext Gantt是Ext JS组件库的一部分,提供了一套完整...
这个小实例将带你深入理解JSP(JavaServer Pages)、Servlet和MySQL数据库的集成应用,尤其适合初学者进行实战演练。本文将详细解析这个“jsp+servlet+mysql”的学生管理系统的核心知识点。 首先,JSP是Java的一种...
【标题】"jsp+servlet+sql server购物车实例"是一个基于Web开发的电子商务应用程序,它展示了如何使用JavaServer Pages(JSP)、Servlet和Microsoft SQL Server数据库来实现一个基本的在线购物车功能。在这个实例中...
2. **ServletConfig接口**:每个Servlet实例都有一个ServletConfig对象,用于传递初始化参数给Servlet。 3. **HttpServletRequest和HttpServletResponse接口**:这些接口代表了来自客户端的HTTP请求和发送回客户端...
综上所述,基于JSP+Servlet+JavaBean的图书管理系统是一个典型的Web应用实例,它融合了前端展示、后端处理和数据存储等多个环节,为学习Java Web开发提供了实践平台。通过这个项目,开发者可以深入理解Web开发的基本...