public String ExcelExport() throws Exception{
HttpServletResponse response = ServletActionContext.getResponse();
// 定义request ,response.
// 查询下载附件.
// 设置下载头信息.begin
response.setCharacterEncoding("UTF-8");
response.setContentType("file");
response.setHeader("Content-Disposition", "attachment; filename="+ new String("报表.xls".getBytes("GB2312"), "iso8859-1"));
// 这个地方一定要进行编码的转换要不然中文字符会出现乱码.
// 设置下载头信息.end,
HttpServletRequest request = ServletActionContext.getRequest();
OutputStream output = null;
InputStream fis = null;
try {
output = response.getOutputStream();
jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(output);
jxl.write.WritableSheet ws = wwb.createSheet("各项产品月销售收入统计汇总表 ", 0);
WritableFont wf = new WritableFont(WritableFont.ARIAL, 10,
WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE,
jxl.format.Colour.BLACK); // 定义格式 字体 下划线 斜体 粗体 颜色
//创建格式化对象实例
WritableCellFormat totalx2Format = new WritableCellFormat(wf);
//垂直居中
totalx2Format.setVerticalAlignment(VerticalAlignment.CENTRE);
//水平居中
totalx2Format.setAlignment(Alignment.CENTRE);
// 设置标题.ws.addCell(new jxl.write.Label(列, 行, 内容.));
ws.addCell(new Label(0, 1, "单位名称",totalx2Format));
ws.addCell(new Label(1, 1, "神州通(含邮政汇款)",totalx2Format));
ws.addCell(new Label(7, 1, "充值卡",totalx2Format));
ws.addCell(new Label(13, 1, "在线定卡",totalx2Format));
ws.addCell(new Label(15, 1, "本月销售总金额(单位:元)",totalx2Format));
ws.addCell(new Label(1, 2, "20元面值",totalx2Format));
ws.addCell(new Label(3, 2, "25元面值",totalx2Format));
ws.addCell(new Label(5, 2, "50元面值",totalx2Format));
ws.addCell(new Label(7, 2, "30元面值",totalx2Format));
ws.addCell(new Label(9, 2, "50元面值",totalx2Format));
ws.addCell(new Label(11, 2, "100元面值",totalx2Format));
ws.addCell(new Label(13, 2, "数量(张)",totalx2Format));
ws.addCell(new Label(14, 2, "金额(元)",totalx2Format));
ws.addCell(new Label(1, 3, "数量(张)",totalx2Format));
ws.addCell(new Label(2, 3, "金额(元)",totalx2Format));
ws.addCell(new Label(3, 3, "数量(张)",totalx2Format));
ws.addCell(new Label(4, 3, "金额(元)",totalx2Format));
ws.addCell(new Label(5, 3, "数量(张)",totalx2Format));
ws.addCell(new Label(6, 3, "金额(元)",totalx2Format));
ws.addCell(new Label(7, 3, "数量(张)",totalx2Format));
ws.addCell(new Label(8, 3, "金额(元)",totalx2Format));
ws.addCell(new Label(9, 3, "数量(张)",totalx2Format));
ws.addCell(new Label(10, 3, "金额(元)",totalx2Format));
ws.addCell(new Label(11, 3, "数量(张)",totalx2Format));
ws.addCell(new Label(12, 3, "金额(元)",totalx2Format));
ws.mergeCells(0, 1, 0, 3); //合并单元格,参数格式(开始列,开始行,结束列,结束行)
ws.mergeCells(1, 1, 6, 1);
ws.mergeCells(7, 1, 12, 1);
ws.mergeCells(13, 1, 14, 1);
ws.mergeCells(1, 2, 2, 2);
ws.mergeCells(3, 2, 4, 2);
ws.mergeCells(5, 2, 6, 2);
ws.mergeCells(7, 2, 8, 2);
ws.mergeCells(9, 2, 10, 2);
ws.mergeCells(11, 2, 12, 2);
ws.mergeCells(13, 2, 13, 3);
ws.mergeCells(14, 2, 14, 3);
ws.mergeCells(15, 1, 15, 3);
ws.setColumnView(0, 15);
ws.setColumnView(1, 10);
ws.setColumnView(2, 10);
ws.setColumnView(3, 10);
ws.setColumnView(4, 10);
ws.setColumnView(5, 10);
ws.setColumnView(6, 10);
ws.setColumnView(7, 10);
ws.setColumnView(8, 10);
ws.setColumnView(9, 10);
ws.setColumnView(10, 10);
ws.setColumnView(11, 10);
ws.setColumnView(12, 10);
ws.setColumnView(13, 10);
ws.setColumnView(14, 10);
ws.setColumnView(15, 15);
beginDate = request.getParameter("beginDate");
endDate = request.getParameter("endDate");
orgname = request.getParameter("orgname");
data = createQuery( beginDate, endDate, orgname);
for (int i = 0; i < data.size(); i++) {
DynaBean dynaBean = (DynaBean)data.get(i);
String orgname = StringUtil.parseNull( dynaBean.get("orgname")) ;
String c_amount20 = StringUtil.parseNull( dynaBean.get("c_amount20"));
String c_paymoney20 = StringUtil.parseNumber( dynaBean.get("c_paymoney20"));
String c_amount25 = StringUtil.parseNull( dynaBean.get("c_amount25"));
String c_paymoney25 = StringUtil.parseNumber( dynaBean.get("c_paymoney25"));
String c_amount50 = StringUtil.parseNull( dynaBean.get("c_amount50"));
String c_paymoney50 = StringUtil.parseNumber( dynaBean.get("c_paymoney50"));
String v_amount30 = StringUtil.parseNull( dynaBean.get("v_amount30"));
String v_paymoney30 = StringUtil.parseNumber( dynaBean.get("v_paymoney30"));
String v_amount50 = StringUtil.parseNull( dynaBean.get("v_amount50"));
String v_paymoney50 = StringUtil.parseNumber( dynaBean.get("v_paymoney50"));
String v_amount100 = StringUtil.parseNull( dynaBean.get("v_amount100"));
String v_paymoney100 = StringUtil.parseNumber( dynaBean.get("v_paymoney100"));
String c_amountonline = StringUtil.parseNull( dynaBean.get("c_amountonline"));
String c_paymoneyonline = StringUtil.parseNumber( dynaBean.get("c_paymoneyonline"));
String totle =
StringUtil.parseNumber(Double.parseDouble(c_paymoney20)
+ Double.parseDouble(c_paymoney25)
+ Double.parseDouble(c_paymoney50)
+ Double.parseDouble(v_paymoney30)
+ Double.parseDouble(v_paymoney50)
+ Double.parseDouble(v_paymoney100)
+ Double.parseDouble(c_paymoneyonline));
WritableCellFormat numberFormat = new WritableCellFormat();
numberFormat.setAlignment(Alignment.RIGHT);
ws.addCell(new Label(0, i + 4, orgname));
ws.addCell(new Label(1, i + 4, c_amount20,numberFormat));
ws.addCell(new Label(2, i + 4, c_paymoney20,numberFormat));
ws.addCell(new Label(3, i + 4, c_amount25,numberFormat));
ws.addCell(new Label(4, i + 4, c_paymoney25,numberFormat));
ws.addCell(new Label(5, i + 4, c_amount50,numberFormat));
ws.addCell(new Label(6, i + 4, c_paymoney50,numberFormat));
ws.addCell(new Label(7, i + 4, v_amount30,numberFormat));
ws.addCell(new Label(8, i + 4, v_paymoney30,numberFormat));
ws.addCell(new Label(9, i + 4, v_amount50,numberFormat));
ws.addCell(new Label(10, i + 4,v_paymoney50,numberFormat));
ws.addCell(new Label(11, i + 4,v_amount100,numberFormat));
ws.addCell(new Label(12, i + 4,v_paymoney100,numberFormat));
ws.addCell(new Label(13, i + 4,c_amountonline,numberFormat));
ws.addCell(new Label(14, i + 4,c_paymoneyonline,numberFormat));
ws.addCell(new Label(15, i + 4,totle,numberFormat));
}
wwb.write();
wwb.close();
}
分享到:
相关推荐
struts2导出excel java 导出excel: JXL_excel: 可以直接在elipse下运行的例子 可以直接导出excel文件(包含所需的jar包) CSharpJExcel: 是JXL的官方下载的 包括详细的文档 和jar包
本压缩包"struts2导出excel.rar"提供了关于如何在Struts2框架中实现Excel导出功能的相关资源。 1. **Struts2框架基础** Struts2是一个基于MVC(Model-View-Controller)设计模式的Java框架,它简化了MVC的实现,...
标题中的“POI+struts2导出Excel”是指使用Apache POI库与Struts2框架结合,实现在Web应用程序中导出数据到Excel的功能。Apache POI是Java平台上的一个开源项目,它允许开发者创建、修改和显示Microsoft Office格式...
在Struts2中,导出Excel是常见的需求,通常用于数据报表或数据分析。这篇笔记将探讨如何在Struts2中实现Excel的导出功能。 首先,我们需要了解Excel的基本概念。Excel是由Microsoft开发的一款电子表格软件,广泛...
在Struts2中,Action可以通过Result返回不同的视图,比如JSP、XML或流文件,这正是我们导出Excel所需的。 接下来,我们引入Apache POI。POI提供了读写Microsoft Office文件的API,对于Excel,主要使用HSSFWorkbook...
在Struts2框架中,实现Excel导出的功能主要依赖于Apache POI库,这是一个用于读写Microsoft Office格式档案的Java库。以下将详细介绍如何利用Struts2和POI实现Excel导出。 首先,你需要在项目中引入Apache POI库。...
接下来,我们创建一个Struts2的动作类(Action),在这个类中定义导出Excel的方法。这个方法通常会接收一些参数,如查询条件,然后根据这些条件从数据库或其他数据源获取数据。例如: ```java public class ...
在这个“Struts1.2导出Excel表完美版”中,我们将深入探讨如何利用Struts1.2框架来实现这一功能。 首先,导出Excel表的核心技术是Apache POI库,这是一个用于读写Microsoft Office格式档案的Java库。在Struts1.2...
**JSP Struts2 分页 导出Excel** 在Web开发中,经常需要处理大量数据,这时分页显示和导出功能就显得尤为重要。JSP(JavaServer Pages)和Struts2作为Java Web开发中的常见技术,可以帮助我们构建动态、交互的网页...
首先,导出Excel是Web应用中常见的需求,通常用于报表生成或数据批量下载。在Struts2中,我们可以利用Apache POI库来操作Microsoft Office的XML格式,进而创建Excel文件。 1. **Apache POI库的使用**:Apache POI是...
本篇文章将深入探讨如何在Struts2框架中使用POI库来导出Excel文件。 首先,我们需要在项目中引入Apache POI库。可以通过Maven或Gradle将其添加到构建文件中。对于Maven,可以在pom.xml文件中添加以下依赖: ```xml...
6. **Struts2配置**: 配置Struts2的action,定义导出Excel的方法,并在struts.xml中配置相应的结果类型,如stream,以便能正确处理返回的流。 7. **安全性考虑**: 在实际应用中,要考虑文件名的安全性,防止路径...
Struts1.2 + ExtJS + 导出Excel项目是一个基于Web的应用开发框架组合,用于构建企业级的Java应用程序。这个项目的重点在于整合Struts1.2(一个经典的MVC框架)与ExtJS(一个富客户端JavaScript库)来提供用户友好的...
在实际项目中,我们经常需要提供文件下载功能,比如导出Excel表格、文本文件或者图片。Struts2提供了文件流的方式来实现这一需求,这种方式避免了在服务器上生成临时文件,提高了效率并减少了服务器存储空间的占用。...
本教程将深入探讨如何利用Struts2实现从Oracle数据库导出数据到Excel,以及如何将Excel文件中的数据导入到Oracle。 首先,我们需要了解Oracle数据库的基础知识。Oracle是世界上最广泛使用的商业关系型数据库管理...
这个项目"Java Struts2+poi插件 实现导出Excel"就是结合这两个工具,为用户提供一个功能,能够将数据导出到Excel格式的文件中。 首先,让我们详细了解一下Struts2。Struts2的核心是Action,它负责接收请求、处理...
Struts2 框架与 Apache 的 JXL 库整合,可以方便地实现在 Java Web 应用中导入和导出 Excel 表格的功能。Apache JXL 是一个强大的 Java 库,专门用于读写 Microsoft Excel 文件,使得开发者无需依赖 Office API 就能...
在 Java 开发中,如果你需要导出数据到 Excel,Apache POI 提供了高效的 API 来实现这一功能。在本文中,我们将深入探讨如何使用 POI 组件来创建和操作 Excel 文档。 1. **创建 Excel 文档对象** 创建一个 Excel ...
Struts2 和 Apache POI 的结合使用主要集中在创建 Web 应用程序中导出 Excel 文件的功能上。Apache POI 是一个 Java 库,允许开发者创建、修改和显示 Microsoft Office 格式的文件,其中包括 Excel。而 Struts2 是一...