- 浏览: 68176 次
- 性别:
- 来自: 成都
最新评论
-
jianqiangking:
java实现从ftp服务器上下载文件 -
jianqiangking:
请问fileUrl的值怎么写?
java实现从ftp服务器上下载文件 -
jianqiangking:
请问fileUrl 属性的值怎么写?
java实现从ftp服务器上下载文件 -
qgyang:
刚好碰到这种问题,非常感谢!
一个服务器中配置多个tomcat -
wangacidlemon:
实际运用中这个书写代码的方式是不被推荐的。继承应当是继承抽象类 ...
父类子类的初始化顺序问题
最近的项目中有个导出excel的需求,由于导出excel的源数据是在动态变化的,而且业务上要求导出excel后便不能允许在导出了,因此考虑直接生成输出流的方式保存到客户端中。该项目的框架是ssh,导出excel的代码也放在了action与service中。
action中的代码:
public void exportExcel(ActionMapping mapping,ActionForm form, HttpServletRequest request,HttpServletResponse response) throws Exception { String ids = request.getParameter("ids"); String[] sid = ids.split(","); OutputStream os = response.getOutputStream();//取得输出流 response.reset();//清空输出流 response.setContentType("application/xls;charset=GB2312");//定义输出类型 response.setHeader("Content-disposition", "attachment; filename=applyList.xls");//设定输出文件头 WritableWorkbook wbook = procurementApplyPoolService.exportExcel(sid, os); wbook.write(); //写入文件 response.flushBuffer();//刷新 wbook.close(); os.close(); procurementApplyPoolService.setExportFlag(sid); }
该action没有返回值,因为导出excel后不需要刷新页面。
service中的代码:
public WritableWorkbook exportExcel(String[] ids,OutputStream os) throws Exception { List modelList = new ArrayList(); List dtoList = null; for(int i=0;i<ids.length;i++){ modelList.add(this.getHibernateTemplate().get(MpsProcurementApplyDetail.class, new Long(ids[i]))); } dtoList = procurementApplyDetailService.buildDtoList(modelList); WritableWorkbook wbook = Workbook.createWorkbook(os); //建立excel文件 SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(); WritableSheet wsheet = wbook.createSheet(sdf1.format(date)+" 采购清单", 0); //创建Excel工作表 ProcurementApplyDetailDto dto; Label label; /*********************设置excle中的头行*****************/ WritableFont wfc = new WritableFont(WritableFont.ARIAL, 25, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK); WritableCellFormat wcfFc = new WritableCellFormat(wfc); wcfFc.setAlignment(jxl.write.Alignment.CENTRE);//水平居中 label = new Label(0, 0, "采购清单", wcfFc); wsheet.addCell(label); /**********************设置标题************************/ WritableFont wfc1 = new WritableFont(WritableFont.ARIAL, 12, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK); WritableCellFormat wcfFc1 = new WritableCellFormat(wfc1); wcfFc1.setBackground(Colour.GRAY_25);//设置背景色 wcfFc1.setVerticalAlignment(VerticalAlignment.CENTRE);//垂直居中 wcfFc1.setAlignment(jxl.write.Alignment.CENTRE); wcfFc1.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN);//设置细边框 label = new Label(0, 1, "请购编号",wcfFc1);//请购编号 wsheet.addCell(label); label = new Label(1, 1, "请购单位",wcfFc1);//请购单位 wsheet.addCell(label); label = new Label(2, 1, "请购人",wcfFc1);//请购人 wsheet.addCell(label); label = new Label(3, 1, "产品名称",wcfFc1);//产品名称 wsheet.addCell(label); label = new Label(4, 1, "产品配置描述",wcfFc1);//产品配置描述 wsheet.addCell(label); label = new Label(5, 1, "规格型号",wcfFc1);//规格型号 wsheet.addCell(label); label = new Label(6, 1, "型号描述",wcfFc1);//型号描述 wsheet.addCell(label); label = new Label(7, 1, "批次号",wcfFc1);//批次号 wsheet.addCell(label); label = new Label(8, 1, "数量",wcfFc1);//数量 wsheet.addCell(label); label = new Label(9, 1, "计量单位",wcfFc1);//计量单位 wsheet.addCell(label); label = new Label(10, 1, "地市配额",wcfFc1);//地市配额 wsheet.addCell(label); label = new Label(11, 1, "费用列支",wcfFc1);//费用列支 wsheet.addCell(label); label = new Label(12, 1, "项目类型",wcfFc1);//项目类型 wsheet.addCell(label); label = new Label(13, 1, "供应商",wcfFc1);//供应商 wsheet.addCell(label); label = new Label(14, 1, "项目名称",wcfFc1);//项目名称 wsheet.addCell(label); label = new Label(15, 1, "项目编码",wcfFc1);//项目编码 wsheet.addCell(label); label = new Label(16, 1, "收货方",wcfFc1);//收货方 wsheet.addCell(label); label = new Label(17, 1, "接收组织",wcfFc1);//接收组织 wsheet.addCell(label); label = new Label(18, 1, "库存组织",wcfFc1);//库存组织 wsheet.addCell(label); label = new Label(19, 1, "到货日期",wcfFc1);//到货日期 wsheet.addCell(label); label = new Label(20, 1, "收货人",wcfFc1);//收货人 wsheet.addCell(label); label = new Label(21, 1, "联系方式",wcfFc1);//联系方式 wsheet.addCell(label); label = new Label(22, 1, "交货地点",wcfFc1);//交货地点 wsheet.addCell(label); label = new Label(23, 1, "使用(安装)地点",wcfFc1);//使用(安装)地点 wsheet.addCell(label); label = new Label(24, 1, "属性",wcfFc1);//属性 wsheet.addCell(label); wsheet.setRowView(1, 400);//设置行高 /**********************设置内容************************/ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); WritableFont wfc2 = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK); WritableCellFormat wcfFc2 = new WritableCellFormat(wfc2); wcfFc2.setVerticalAlignment(VerticalAlignment.CENTRE);//垂直居中 wcfFc2.setAlignment(jxl.write.Alignment.CENTRE); wcfFc2.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN);//设置细边框 for(int i=0;i<dtoList.size();i++){ dto = (ProcurementApplyDetailDto)dtoList.get(i); label = new Label(0, i+2, dto.getApplyCode(),wcfFc2);//请购编号 wsheet.addCell(label); label = new Label(1, i+2, dto.getCreaterunitname(),wcfFc2);//请购单位 wsheet.addCell(label); label = new Label(2, i+2, dto.getCreatername(),wcfFc2);//请购人 wsheet.addCell(label); label = new Label(3, i+2, dto.getProductname(),wcfFc2);//产品名称 wsheet.addCell(label); label = new Label(4, i+2, dto.getConfiguration(),wcfFc2);//产品配置描述 wsheet.addCell(label); label = new Label(5, i+2, dto.getMaterialname(),wcfFc2);//规格型号 wsheet.addCell(label); label = new Label(6, i+2, dto.getMaterialproperty(),wcfFc2);//型号描述 wsheet.addCell(label); label = new Label(7, i+2, dto.getBatchnumber(),wcfFc2);//批次号 wsheet.addCell(label); Long amount = dto.getAmount()==null?new Long(0):dto.getAmount(); label = new Label(8, i+2, amount.toString(),wcfFc2);//数量 wsheet.addCell(label); label = new Label(9, i+2, dto.getUnits(),wcfFc2);//计量单位 wsheet.addCell(label); label = new Label(10, i+2, dto.getCompanyQuota(),wcfFc2);//地市配额 wsheet.addCell(label); label = new Label(11, i+2, dto.getExpendname(),wcfFc2);//费用列支 wsheet.addCell(label); label = new Label(12, i+2, dto.getProjecttype(),wcfFc2);//项目类型 wsheet.addCell(label); label = new Label(13, i+2, dto.getProvidername(),wcfFc2);//供应商 wsheet.addCell(label); label = new Label(14, i+2, dto.getProjectname(),wcfFc2);//项目名称 wsheet.addCell(label); label = new Label(15, i+2, dto.getProjectcode(),wcfFc2);//项目编码 wsheet.addCell(label); label = new Label(16, i+2, dto.getShiptolocation(),wcfFc2);//收货方 wsheet.addCell(label); label = new Label(17, i+2, dto.getOrganizationname(),wcfFc2);//接收组织 wsheet.addCell(label); label = new Label(18, i+2, dto.getWarehousename(),wcfFc2);//库存组织 wsheet.addCell(label); if(dto.getArrivedate() == null){ label = new Label(19, i+2, "",wcfFc2);//到货日期 }else{ label = new Label(19, i+2, sdf.format(dto.getArrivedate()),wcfFc2);//到货日期 } wsheet.addCell(label); label = new Label(20, i+2, dto.getReceivername(),wcfFc2);//收货人 wsheet.addCell(label); label = new Label(21, i+2, dto.getPhone(),wcfFc2);//联系方式 wsheet.addCell(label); label = new Label(22, i+2, dto.getDeliveryaddress(),wcfFc2);//交货地点 wsheet.addCell(label); label = new Label(23, i+2, dto.getInstalladdress(),wcfFc2);//使用(安装)地点 wsheet.addCell(label); label = new Label(24, i+2, dto.getProperty(),wcfFc2);//属性 wsheet.addCell(label); wsheet.setRowView(i+2, 350); } wsheet.mergeCells(0, 0, 24, 0);//合并单元格 return wbook; }
这个功能任然存在着问题,就是导出excel的中问文件名的问题。使用中文后总是下载不了。由于action没有返回值,在页面中进行其他刷新页面的处理时需要给from的action重新赋值,不然不论做其他刷新操作都会访问导出excel的action方法。
发表评论
-
【转】spring 定时器 表达式 org.springframework.scheduling.quartz.CronTriggerBean
2013-08-02 14:54 821一个Quartz的CronTrigger表 ... -
Swt jface 提供了virtual table 和 virtual tree(转)
2012-12-17 09:27 955使用虚拟表和虚拟树的确可以很大程度地提供UI界面的性能,尤其是 ... -
根据http链接下载网络上的文件到本地
2011-09-02 15:30 1291根据http链接下载网络上的文件到本地 一次项目的接口上遇到 ... -
sql 学习
2010-07-16 10:45 769create or replace function P_Ge ... -
javascript--url传递中文乱码(转)
2010-06-22 21:18 820javascript 中对于参数编码: url=encodeU ... -
解决org.hibernate.ObjectDeletedException: deleted object would be re-saved by casc
2009-07-03 14:32 2268相关代码:========================== ... -
hibernate集合映射inverse和cascade详解
2009-07-03 09:26 6234. hibernate如何根据poj ... -
eclipse开发之弹出框——TitleAreaDialog
2009-05-28 19:01 1407TitleAreaDialog继承自Dialog类,在一般的开 ... -
容器监听
2009-04-09 15:37 11551.Servlet容器监听: javax. ... -
java实现从ftp服务器上下载文件
2009-04-08 12:24 5660最近由于工作上的需要,要实现个从ftp服务器上下载文件的功能。 ... -
手动生成webservice客户端
2008-12-02 15:04 1420import javax.xml.namespace.QNam ... -
Class.forName
2008-12-01 21:59 837Class.forName(xxx.xx.xx) 返回的是一个 ... -
jdbc 连接大全
2008-11-10 17:15 8721. 各种数据库的JDBC连接大全 3 2. ... -
用DOM4J创建及修改XML文件
2008-10-28 16:31 1171代码如下: package com.willpower.par ... -
什么是多态 -- 转
2008-06-20 16:37 2046也说面试的火爆是让我 ... -
父类子类的初始化顺序问题
2008-06-20 12:34 3823今天在csdn上看到了 ... -
一个服务器中配置多个tomcat
2008-06-11 09:21 4770由于工作的原因,需要在一个服务器中配置多个tomcat。在网上 ...
相关推荐
string[] letterList = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" }; // 写入表头 for (int i = 0; i ; i++) {...
本文将深入探讨如何利用Excel来实现在C/S(客户端/服务器)和B/S(浏览器/服务器)模式下进行打印预览和导出Excel文档的功能。 首先,`OprationExcel.cs` 文件可能包含了一组操作Excel的核心方法,用于创建、读取或...
10.软件采用B/S结构,适用于局域网和广域网。只在一服务器端安装,其它用户只要用IE就可使用本系统,安装维护方便。 11.支持模板导入和模板导出功能。 12.灵活的用户权限管理。 13.可定制按条件删除数据任务。 ...
本篇文章将深入探讨几种在ASP.NET环境中导出Excel数据的方法,包括它们的工作原理、优缺点以及适用场景。 #### 方法一:引用COM组件 这种方法通过直接调用Excel COM组件,将数据从DataTable导入至Excel单元格,并...
5. 报表打印与导出:系统支持将查询结果导出为Excel或PDF格式,方便打印和存档。这通常需要结合服务器端组件或者第三方库来实现。 6. 系统设置:包括数据库连接配置、系统参数设置等功能,确保系统能适应不同环境的...
在数据库管理和维护过程中,有时我们需要定期将数据库中的数据导出为其他格式,如Excel、Word或Access等,便于进一步的数据分析或者报告制作。本文将详细介绍如何利用SQL Server实现定时任务,将数据自动导出至Excel...
在当今信息技术迅猛发展的背景下,B/S架构下协同办公系统的设计与实现成为了一个研究热点,特别在教育领域,它能有效地解决教务管理中的多项问题。协同办公系统基于浏览器/服务器(B/S)架构,主要针对高校等教育...
### 多Sheet导出Excel知识点解析 #### 一、知识点概览 本篇文章将深入解析一个C#程序片段,该程序的功能是实现基于`DataSet`的多Sheet Excel文件导出功能。具体而言,我们将探讨以下几个核心知识点: 1. **如何...
本主题聚焦于"Lotus"应用中导出数据到"Office Excel"的完整功能,这涉及到B/S(Browser/Server,浏览器/服务器)和C/S(Client/Server,客户端/服务器)两种架构下的解决方案。下面我们将详细探讨这个过程,以及相关...
B/S模式通过LotusScript直接导出EXCEL文件,文件中只有最重要的输出部分,其余需自行补充完成,其中Head和Sheet样式可以通过Excel录入宏获取
### SQL导出Excel问题解决方案 #### 一、问题概述 在使用SQL进行数据处理时,经常需要将查询结果导出到Excel文件中以便进一步分析或分享。然而,在实际操作过程中,有时会遇到无法将SQL查询结果导出为Excel的情况...
在Java Web开发中,JSP(JavaServer Pages)是一种用于创建动态网页的技术,而Apache POI则是一个流行的库,专门用于处理Microsoft Office格式的文件,包括Excel。本例子将介绍如何在JSP中利用POI库来实现Excel数据...
特别是在B/S架构的应用中,用户经常需要将查询结果导出为Excel文件以便进行后续的数据处理或者存档。本文将详细介绍如何使用Java实现将数据导出为Excel文件,并且能够被浏览器正确下载,同时解决中文乱码问题。 ###...
协同办公系统是一个基于Web的B/S(Browser/Server)架构的应用程序,主要目的是提升团队协作效率,实现工作流程自动化。在这个系统中,JSP(JavaServer Pages)和Servlet是核心的技术组件,它们在Java Web开发中起着...
### GridView导出Excel方法 #### 一、概述 在日常工作中,经常需要将网页上的数据导出至Excel文件,方便用户进行数据查看或进一步处理。本文档将详细介绍一种使用GridView控件导出数据到Excel的方法,并提供代码...
在C#编程中,导出大量数据到Excel是一项常见的任务,尤其在数据分析、报表生成或者数据备份等场景中。本文将深入探讨如何在C#环境中高效地处理百万级别的数据导出,并结合“C#百万数据导出Demo”进行详细解析。 ...
- **背景介绍**:本文档介绍了一种在 .NET 框架下的 B/S 架构环境中,如何高效地将 GridView 控件中的数据导出到 Excel 文件的方法。此方法的一个显著特点是不需要在服务器端安装 Microsoft Office 套件即可实现数据...
{idx:1, names: "test1", sex: "b" }, {idx:2, names: "test2", sex: "g" } ]; public function doSelect(o:Object):void { Alert.show("行的数据分别是:"+o.idx+"/"+o.names+"/"+o.sex); ...