`
乌托邦之爱
  • 浏览: 281056 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

struts2下载excel文件并解析数据插入数据库

阅读更多
public InputStream getDownloadFile()
	{
		
			return ServletActionContext.getServletContext().getResourceAsStream("/excel/jkmalfuncexperienceDownLoadMold.xls");
	}
	
	@SuppressWarnings("unchecked")
	public String download(){
		
		 ServletContext aplication = ServletActionContext.getServletContext();
		 String path = aplication.getRealPath("/excel");
		WritableWorkbook book = null;
		try {
			List<AlarmRmsJkmalfuncexperience> exportlist = null;
			if(ids!=null&&ids.size()>0)
			{
				 exportlist = alarmRmsJkmalfuncexperienceManager.getList(ids);
			}else
			{
				exportlist = alarmRmsJkmalfuncexperienceManager.getList(alarmRmsJkmalfuncexperience);
			}
			
			
			book =  Workbook.createWorkbook(new File(path,"jkmalfuncexperienceDownLoadMold.xls"));
			WritableSheet sheet = book.createSheet("故障经验库", 0); //添加excel的标题列
			Label titleExpid = new Label(0, 0, "经验编号");
			sheet.addCell(titleExpid);
			Label titleExptitle = new Label(1, 0, "经验主题");
			sheet.addCell(titleExptitle);
			Label titleMalfuncarea = new Label(2, 0, "故障发生地区");
			sheet.addCell(titleMalfuncarea);
			Label titleSpecialtype = new Label(3, 0, "专业类别");
			sheet.addCell(titleSpecialtype);
			Label titleDevicetype = new Label(4, 0, "故障设备");
			sheet.addCell(titleDevicetype);
			Label titleDevicecompany = new Label(5, 0, "故障设备厂商");
			sheet.addCell(titleDevicecompany);
			Label titleVersion = new Label(6, 0, "软硬件编号");
			sheet.addCell(titleVersion);
			Label titleExplevel = new Label(7, 0, "经验等级");
			sheet.addCell(titleExplevel);
			Label titleExpkeyword = new Label(8, 0, "经验关键字");
			sheet.addCell(titleExpkeyword);
			Label titleMalfuncdescription = new Label(9, 0, "故障描述");
			sheet.addCell(titleMalfuncdescription);
			Label titleExperiencesummary = new Label(10, 0, "经验总结");
			sheet.addCell(titleExperiencesummary);
			
			for(int i=0;i<exportlist.size();i++) //添加excel数据
			{
				AlarmRmsJkmalfuncexperience arj = exportlist.get(i);
				int a=i+1;//意思是从第二行开始添加数据
				Label lableExpid = new Label(0, a, arj.getExpid());
				sheet.addCell(lableExpid);
				Label lable1Exptitle = new Label(1, a, arj.getExptitle());
				sheet.addCell(lable1Exptitle);
				Label lableMalfuncarea = new Label(2, a, arj.getMalfuncarea());
				sheet.addCell(lableMalfuncarea);
				Label lableSpecialtype = new Label(3, a, arj.getSpecialtype());
				sheet.addCell(lableSpecialtype);
				Label lableDevicetype = new Label(4, a, arj.getDevicetype());
				sheet.addCell(lableDevicetype);
				Label lableDevicecompany = new Label(5, a, arj.getDevicecompany());
				sheet.addCell(lableDevicecompany);
				Label lableVersion = new Label(6, a, arj.getVersion());
				sheet.addCell(lableVersion);
				Label lableExplevel = new Label(7, a, arj.getExplevel());
				sheet.addCell(lableExplevel);
				Label lableExpkeyword = new Label(8, a, arj.getExpkeyword());
				sheet.addCell(lableExpkeyword);
				Label lableMalfuncdescription = new Label(9, a, arj.getMalfuncarea());
				sheet.addCell(lableMalfuncdescription);
				Label lableExperiencesummary = new Label(10, a, arj.getExperiencesummary());
				sheet.addCell(lableExperiencesummary);
			}
			
			
		} catch (RowsExceededException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (WriteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}catch(Exception e)
		{
			
		}finally{
			try {
				book.write();
			} catch (IOException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
			try {
				book.close();
			} catch (WriteException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
		return SUCCESS;
	}
 
<action name="download" class="alarmRmsJkmalfuncexperienceAction" method="download">
		    <result name ="success" type="stream">
		       <param name="contentType">application/vnd.ms-excel</param>
		       <param name="contentDisposition">filename="malfuncexperience_.xls"</param>
		       <param name="inputName">downloadFile</param>
		    </result>
		</action>
 
分享到:
评论

相关推荐

    extjs3.2+struts2实现多文件上传excel并插入到数据库

    总的来说,"extjs3.2+struts2实现多文件上传excel并插入到数据库"项目结合了前端交互、后端处理和数据库操作,实现了一个完整的数据导入流程。开发者需要理解ExtJS的组件使用、Struts2的文件上传处理、Java对Excel...

    简单java做excel解析并验证插入数据库.pdf

    这个PDF文档标题提到的“简单java做excel解析并验证插入数据库”涉及到的关键技术包括Excel文件解析、文件上传以及数据库操作。下面我们将详细讨论这些知识点。 首先,Excel文件解析通常使用Apache POI库,这是一个...

    ajax 上传 下载 把excel 中的数据导入到数据库 struts

    4. JDBC操作数据库,将Excel数据插入数据库。 5. 使用JavaScript和HTML展示上传进度条,可能需要服务器端的进度反馈接口。 希望这个详细的解释能帮助你理解和实施类似的功能。在实际项目中,还需要考虑到错误处理、...

    Struts2 Excel导入导出数据

    导入时,读取上传的Excel文件,解析数据,然后通过JDBC调用存储过程将数据插入数据库。 3. **创建Excel模板**:设计Excel模板,包括列名和预期的数据格式。这将作为导出的模板或导入时的数据验证依据。 4. **处理...

    java中excel数据写入数据库

    这个场景通常涉及使用特定库来解析Excel文件,并通过某种框架(如Struts)与数据库进行交互。以下是对这个过程的详细解释: 首先,我们需要处理的是Excel文件。在Java中,`jxl.jar`库是一个广泛使用的第三方库,...

    struts2+poi实现excel文件的导出

    同时,如果你需要支持 Excel 的导入,可以创建相应的 Action 方法,读取客户端上传的文件,然后利用 POI 解析 Excel 数据并存入数据库。 总之,通过 Struts2 和 POI 的结合,开发者可以方便地在 Web 应用中提供 ...

    java版Excel文件导入数据库源代码

    java版Excel文件导入数据库源代码 servlet容器:tomcat(或者其他) 数据库:oracle(或者其他) 使用框架:jsp+struts1.2 支持字符型/数据型/日期型/CLOB等数据 使用步骤: 1.下载本资源,解压后得到4个文件:...

    Excel上传操作数据库

    以上就是关于“Excel上传操作数据库”的详细知识点,涵盖了从使用Apache POI处理Excel,到使用Struts2进行文件下载,再到与Oracle数据库的交互等多个层面的技术细节。在实际开发中,这些知识可以帮助构建一个高效、...

    eclipse和mysql+strust2实现excel数据的导入导出完整代码

    首先,你需要解析Excel文件,读取数据,然后通过Struts2的动作类将数据转换为Java对象,最后通过JDBC连接插入到MySQL数据库。 5. **Excel数据导出**:导出数据时,同样使用Apache POI创建一个新的Excel工作簿,然后...

    文件上传使用POI导入数据库

    服务器端通常使用特定的库或框架(如Spring MVC、Struts2等)来处理这些上传请求,解析请求体中的文件内容,并保存到服务器的临时目录或者指定位置。文件上传时需要注意文件大小限制、安全性(防止文件注入攻击)...

    SSH框架中关于EXCEL表格导入到MySQL数据库

    在导入数据时,需要将Excel解析得到的数据映射到实体类,并调用`save()`或`saveOrUpdate()`方法批量保存到数据库。 ```java SessionFactory sessionFactory = HibernateUtil.getSessionFactory(); Session session ...

    struts+hibernate的导入导出

    一旦文件成功上传到服务器端,下一步就是解析文件内容并将数据插入到数据库中。这里可以使用Apache POI库来读取Excel文件,POI是一个用于处理MS Office文档格式的强大Java库。解析完成后,可以通过Hibernate ORM框架...

    SSH2数据导入导出

    在导入时,它能将Excel数据转化为对应的Java对象,再通过SQL语句批量插入数据库;导出时,则是从数据库查询数据,转换成Excel格式供用户下载。 实现Excel导入导出,开发者通常会使用Apache POI库。POI是一个用于...

    struts2+hibernate实现的网站

    这可能涉及使用Apache POI库解析Excel文件,读取数据,并通过Hibernate批量插入到数据库中。开发者需要处理Excel格式的不同版本,以及数据验证和异常处理。 视频播放功能意味着网站包含了多媒体内容的处理。这通常...

    JavaWeb - Excel_Word(2003_2007、上传下载、解析生成、导入导出)源码

    - **导入导出**:导入时,先读取Excel文件,然后将数据解析为适合数据库存储的格式。导出时,从数据库获取数据,构造Excel表格并提供下载。 4. **Word处理**: Apache POI同样支持Word处理,使用XWPFDocument...

    POI导入Excel表格数据小例子

    后端使用了 Struts2 框架,通过 `importExcel()` 方法处理文件上传和数据导入。 ```java private File excelFile; public File getExcelFile() { return excelFile; } public void setExcelFile(File excelFile)...

    S2SH导入excel表

    在S2SH框架中进行Excel导入功能,可以帮助用户方便地将大量数据从Excel文件导入到数据库中,提高数据处理效率。以下是一个详细的步骤解析: 1. **Action层**: 在Action类中,首先定义一个方法来处理导入请求。此...

    s2sh--lib.rar_s2sh_s2sh l_spring l_ssh_struts2

    "s2sh--lib.rar_s2sh_s2sh l_spring l_ssh_struts2" 提供的是一个包含s2sh框架所需库的压缩包,它整合了Struts2、Spring和Hibernate(简称SSH)这三大流行Java Web开发框架的核心组件,方便开发者直接下载使用,无需...

    导出excel表

    5. 插入数据库:使用Hibernate的Session对象保存或更新数据,通过事务管理确保数据一致性。 6. 处理异常:捕获并处理可能出现的异常,如文件解析错误、数据库操作失败等,返回相应的提示信息。 在实际开发中,为了...

    struts2 jasper iReport 报表

    在实际应用中,结合Struts2、Javabean和iReport,你可以实现用户在Web界面上请求报表,后台服务通过Struts2框架处理请求,调用JDBC或ORM框架(如Hibernate)从数据库获取数据,将数据封装成Javabean集合,然后使用...

Global site tag (gtag.js) - Google Analytics