SSI框架下,用jxl实现导出功能
来源:互联网 发布:abp zero 源码 下载 编辑:程序博客网 时间:2024/05/20 07:36
SSI框架下,用jxl实现导出功能
先说明一下,这个是SSI框架下,前端用ExtJs,应用在一个企业级的系统中的导出功能,因为是摸索着做的,所以里面有一些代码想整理一下,如果有人看到了,请视自己的架构酌情借用
JS获取查询条件并跳转页面
//eform中按钮的click事件jsvar wtly = comboBox.lastSelectionText;//问题来源if(wtly==undefined)wtly="";var fxwt = searchField_fxwt.getValue();//分析问题var whyslb = comboBox_1.lastSelectionText;//不安全行为类别if(whyslb==undefined)whyslb="";var wzxwlb = comboBox_2.lastSelectionText;//违章类型类别if(wzxwlb==undefined)wzxwlb="";var wzxz = comboBox_3.lastSelectionText;//违章性质if(wzxz==undefined)wzxz="";var fxr = searchField_fxr.getValue();//发现人var fxsjStart = searchField_fxsj.getValue();//开始时间var fxsjEnd = dateField.getValue();//结束时间var url='doBzaqAqjcZcxwAction_expWorkList?fxr='+fxr+'&wtly='+wtly+'&fxwt='+fxwt+'&whyslb='+whyslb+'&wzxwlb='+wzxwlb+'&wzxz='+wzxz+'&fxsjStart='+fxsjStart+'&fxsjEnd='+fxsjEnd;window.location.href =url;
下面是Spring 中配置相关的业务层和DAO层
//Spring applicationContext注入相关的service,dao<!-- 次日高风险作业表的配置 --> <bean id="BzaqXxglCrgfxzybAction" class="md.bzaq.xxbs.crgfx.action.BzaqXxglCrgfxzybAction" scope="prototype"> <property name="bzaqXxglCrgfxzybService"> <ref bean="bzaqXxglCrgfxzybService" /> </property> <property name="bzaqAqjcZcxwService"> <ref bean="bzaqAqjcZcxwService" /> </property> <property name="bzaqAqjcZczzService"> <ref bean="bzaqAqjcZczzService" /> </property> <property name="bzaqAqjcZcglService"> <ref bean="bzaqAqjcZcglService" /> </property> </bean> <bean id="bzaqXxglCrgfxzybService" class="md.bzaq.xxbs.crgfx.service.BzaqXxglCrgfxzybServiceImpl"> <property name="bzaqXxglCrgfxzybDao"> <ref bean="bzaqXxglCrgfxzybDao" /> </property> </bean> <bean id="bzaqXxglCrgfxzybDao" class="md.bzaq.xxbs.crgfx.dao.BzaqXxglCrgfxzybDAOImpl"> <property name="sqlMapClientTemplate" ref="sqlMapClientTemplate" /> </bean>
下面是后台控制层处理查询数据以及导出数据
//Controller 后台Action中的方法public void expWorkList(){ SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");//小写的mm表示的是分钟 SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM");//小写的mm表示的是分钟 Date today = new Date(); //定义查找对象 BzaqAqjcXwhzSearch bzaqAqjcXwhzSearch= new BzaqAqjcXwhzSearch(); try { //解码,并且将参数存入查找对象中 if(fxr!=null&&!"".equals(fxr)){ fxr = java.net.URLDecoder.decode(fxr,"utf-8");// bzaqAqjcXwhzSearch.setFxr(fxr); } if(wtly!=null&&!"".equals(wtly)){ wtly = java.net.URLDecoder.decode(wtly,"utf-8"); bzaqAqjcXwhzSearch.setWtly(wtly); } if(fxwt !=null&&!"".equals(fxwt )){ fxwt = java.net.URLDecoder.decode(fxwt ,"utf-8"); bzaqAqjcXwhzSearch.setFxwt(fxwt); } if(whyslb!=null&&!"".equals(whyslb)){ whyslb = java.net.URLDecoder.decode(whyslb,"utf-8"); bzaqAqjcXwhzSearch.setWhyslb(whyslb); } if(wzxwlb !=null&&!"".equals(wzxwlb)){ wzxwlb = java.net.URLDecoder.decode(wzxwlb ,"utf-8"); bzaqAqjcXwhzSearch.setWzxwlb(wzxwlb); } if(wzxz !=null&&!"".equals(wzxz )){ wzxz = java.net.URLDecoder.decode(wzxz ,"utf-8"); bzaqAqjcXwhzSearch.setWzxz(wzxz ); } if(fxsjStart !=null&&!"".equals(fxsjStart )){ bzaqAqjcXwhzSearch.setFxsjStart(fxsjStart ); } if(fxsjEnd!=null&&!"".equals(fxsjEnd)){ bzaqAqjcXwhzSearch.setFxsjEnd(fxsjEnd); } if(sfww!=null&&sfww.equals("是")){ bzaqAqjcXwhzSearch.setSfww("是"); } } catch (UnsupportedEncodingException e2) { // TODO Auto-generated catch block e2.printStackTrace(); } //排序属性 bzaqAqjcXwhzSearch.setOrderByClause(" fxsj desc"); HttpServletRequest request = (HttpServletRequest)ActionContext.getContext().get(org.apache.struts2.StrutsStatics.HTTP_REQUEST); String filePath=request.getSession().getServletContext().getRealPath("/");//模板路径 String fileName = "行为违章.xls";//导出文件名 if(ServletActionContext.getRequest().getHeader( "USER-AGENT" ).toLowerCase().indexOf( "msie" ) > 0 ){ try { fileName =java.net.URLEncoder.encode(fileName,"utf-8"); } catch (UnsupportedEncodingException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } filePath=filePath.replaceAll("\\\\", "/");//模板路径 filePath = filePath + "docs/xwwz.xls";//模板路径 InputStream is; //所有的任务清单 List bzaqAqjcZcxwList = new ArrayList(); try { is = new FileInputStream(filePath); //Workbook为只读 jxl.Workbook wb = jxl.Workbook.getWorkbook(is); //WritableWorkbook为可写入。 //将WritableWorkbook直接写入到输出流。 HttpServletResponse response = (HttpServletResponse)ActionContext.getContext().get(org.apache.struts2.StrutsStatics.HTTP_RESPONSE); OutputStream os = response.getOutputStream(); jxl.write.WritableWorkbook wbook = jxl.Workbook.createWorkbook(os,wb); //可写入的单元格格式。 jxl.write.WritableCellFormat wcf = new jxl.write.WritableCellFormat(); // 单元格定义 wcf.setBackground(jxl.format.Colour.BLACK); // 设置单元格的背景颜色 WritableFont font = new WritableFont(WritableFont.createFont("宋体"),10);//设置字体 wcf.setFont(font); wcf.setAlignment(jxl.format.Alignment.LEFT); // 设置对齐方式左右居中 wcf.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);// 设置对齐方式上下居中 wcf.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN); wcf.setWrap(true); //工作表。 jxl.write.WritableSheet wsheet = wbook.getSheet(0); wsheet.setName("行为违章.xls"); jxl.write.Label label = null; //任务清单列表数据 bzaqAqjcZcxwList = bzaqAqjcZcxwService.getBzaqAqjcZcxwshz1(bzaqAqjcXwhzSearch);//查出要导出的数据 int rwrows = 2; if(bzaqAqjcZcxwList.size()>0){ for(int i=0;i<bzaqAqjcZcxwList.size();i++){ BzaqAqjcXwhz obj=(BzaqAqjcXwhz)bzaqAqjcZcxwList.get(i); label =new jxl.write.Label(0,rwrows+i ,obj.getFxwt(),wcf); wsheet.addCell(label); label =new jxl.write.Label(1,rwrows+i ,obj.getWzxz(),wcf); wsheet.addCell(label); label =new jxl.write.Label(2,rwrows+i ,obj.getWzxwlb(),wcf); wsheet.addCell(label); label =new jxl.write.Label(3,rwrows+i ,obj.getZrdw(),wcf); wsheet.addCell(label); label =new jxl.write.Label(4,rwrows+i ,obj.getZrbm(),wcf); wsheet.addCell(label); label =new jxl.write.Label(5,rwrows+i ,obj.getZrbz(),wcf); wsheet.addCell(label); label =new jxl.write.Label(6,rwrows+i ,obj.getSfww(),wcf); wsheet.addCell(label); label =new jxl.write.Label(7,rwrows+i ,obj.getZrr(),wcf); wsheet.addCell(label); label =new jxl.write.Label(8,rwrows+i ,obj.getJzqk(),wcf); wsheet.addCell(label); label =new jxl.write.Label(9,rwrows+i ,obj.getZrrjf(),wcf); wsheet.addCell(label); label =new jxl.write.Label(10,rwrows+i ,obj.getZrrcfje(),wcf); wsheet.addCell(label); label =new jxl.write.Label(11,rwrows+i ,obj.getLdkhzrr(),wcf); wsheet.addCell(label); label =new jxl.write.Label(12,rwrows+i ,obj.getLdkhje(),wcf); wsheet.addCell(label); label =new jxl.write.Label(13,rwrows+i ,obj.getWzyyfx(),wcf); wsheet.addCell(label); label =new jxl.write.Label(14,rwrows+i ,obj.getJzyfcs(),wcf); wsheet.addCell(label); label =new jxl.write.Label(15,rwrows+i ,obj.getJcbm(),wcf); wsheet.addCell(label); label =new jxl.write.Label(16,rwrows+i ,obj.getZw(),wcf); wsheet.addCell(label); label =new jxl.write.Label(17,rwrows+i ,obj.getFxr(),wcf); wsheet.addCell(label); label =new jxl.write.Label(18,rwrows+i ,obj.getWtly(),wcf); wsheet.addCell(label); Date fxsj = obj.getFxsj(); if(fxsj !=null) { label =new jxl.write.Label(19,rwrows+i ,sdf.format(obj.getFxsj()),wcf); wsheet.addCell(label); } if(obj.getYf()!=null) { label =new jxl.write.Label(20,rwrows+i ,sdf1.format(obj.getYf()),wcf); wsheet.addCell(label); } label =new jxl.write.Label(21,rwrows+i ,obj.getWhyslb(),wcf); wsheet.addCell(label); } } ///////在这里继续加第二个sheet页/////// jxl.write.WritableSheet wsheet = wbook.getSheet(1); //获取客户端浏览器和操作系统信息 if(ServletActionContext.getRequest().getHeader( "USER-AGENT" ).toLowerCase().indexOf( "msie" ) > 0 ){ response.setHeader("Content-Disposition", "attachment; filename="+fileName); }else{ response.addHeader("Content-Disposition", "attachment;filename="+ new String(fileName.getBytes("GB2312"),"ISO-8859-1")); } response.setContentType("application/vnd.ms-excel"); wbook.write(); wbook.close(); os.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } }
模板
在对应的路径下,做一个对应文件名的EXCEL模板,SHEET页和标题,以及各字段的数据类型要和后台查出来的一致;阅读全文
0 0
- SSI框架下,用jxl实现导出功能
- java jxl实现excel导出功能
- struts框架下,java导出excel(JXL导出)
- jxl 导出功能
- SSI框架如何导出excel
- spring+strust2+mybatis框架下的导出功能的实现
- jxl实现导出excel
- Jxl导出Excel实现
- jxl 实现导出excel
- jxl实现excel 导出
- 利用jxl实现excel导出
- 用Jxl实现将统计数据导出到excel表中
- 用jxl来实现将数据导出成EXECEL表
- Java SSI框架下的文件上传
- SSI框架---实现查询结果分页显示
- 【ibatis】ssi 框架 ibatis 分页实现
- SSI框架
- SSI框架
- jsonp的原理
- [乐意黎转载]Linux系统下如何配置SSH?如何开启SSH?
- arm-Linux-gcc交叉编译器和gcc编译器的下载地址
- BZOJ1207: [HNOI2004]打鼹鼠
- Flutter进阶—实现动画效果(七)
- SSI框架下,用jxl实现导出功能
- Mycat处理命令流程简单记录
- 域名映射 + sql错误记录
- Mesos+Zookeeper+Marathon的Docker管理平台部署记录(1)
- android Manifast.xml
- 农历查询API接口说明,农历API
- (129)光源移动性
- MySQL中函数CONCAT及GROUP_CONCAT
- 金蝶bos开发经验——1