java jxl 教程,java action jxl 生成并下载excel
[java]
/**
* ReportExportAction.java
* 版权所有(C) 2012
* 创建:cuiran 2012-08-14 10:38:21
*/
package com.wpn.web.action.report;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import jxl.Workbook;
import jxl.format.Colour;
import jxl.write.Border;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.alibaba.fastjson.JSON;
import com.wpn.web.dao.union.ICallTaxiDao;
import com.wpn.web.domain.report.ReportCallInfo;
import com.wpn.web.dto.report.ReportCallDto;
import com.wpn.web.processor.IProcessor;
import com.wpn.web.processor.requestVo.mytmq.BaseRequestVo;
import com.wpn.web.processor.requestVo.report.ReportCallVo;
import com.wpn.web.util.JsonCallback;
import com.wpn.web.util.UtilDate;
import com.wpn.web.util.VeDate;
/**
* TODO
* @author cuiran
* @version TODO
*/
public class ReportExportAction implements IProcessor {
private static Log log = LogFactory.getLog(ReportExportAction.class.getName());
private ICallTaxiDao dao;
/**
* @return the dao
*/
public ICallTaxiDao getDao() {
return dao;
}
/**
* @param dao the dao to set
*/
public void setDao(ICallTaxiDao dao) {
this.dao = dao;
}
/* (non-Javadoc)
* @see com.wpn.web.processor.IProcessor#processMessage(com.wpn.web.processor.requestVo.mytmq.BaseRequestVo, javax.servlet.http.HttpServletResponse)
*/
@Override
public void processMessage(BaseRequestVo model, HttpServletResponse response) {
ReportCallDto dto = new ReportCallDto();
PrintWriter out = null;
ReportCallVo vo = (ReportCallVo) model;
try {
response.reset();
out = response.getWriter();
response.setCharacterEncoding("utf-8");
response.reset();
String strFromTime="";
String strEndTime="";
List list=dao.getReportCallInfo(strFromTime, strEndTime);
String excelName = UtilDate.getFirstOrderNum(6);
String path=this.excelSave(list,excelName);
response.setContentType("application/octet-stream;charset=UTF-8");
//下载
response.setHeader("Content-disposition", "attachment;filename=" + excelName+".xls"); //文件名,在这下载了是乱码
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(path));
ServletOutputStream sos=response.getOutputStream();
BufferedOutputStream bos = new BufferedOutputStream(sos);
byte[] buffer = new byte[1024];
int len = -1;
while ((len = bis.read(buffer)) != -1) {
bos.write(buffer, 0, len);
}
bos.close();
sos.close();
bis.close();
} catch (Exception e) {
log.error("获取打车请求量出错", e);
}
}
public String excelSave(List list,String excelName){
String path="D:\\UpLoadFile\\" + excelName + ".xls";
try{
WritableWorkbook book = Workbook.createWorkbook(new File(
path));
WritableSheet sheet = book.createSheet("sheet_1", 0);
jxl.write.WritableFont font1 = new jxl.write.WritableFont(
jxl.write.WritableFont.TIMES, 16,
jxl.write.WritableFont.BOLD);
jxl.write.WritableFont font3 = new jxl.write.WritableFont(
jxl.write.WritableFont.TIMES, 10,
jxl.write.WritableFont.BOLD);
jxl.write.WritableCellFormat CBwcfF1 = new jxl.write.WritableCellFormat(
font1);
jxl.write.WritableCellFormat CBwcfF2 = new jxl.write.WritableCellFormat();
jxl.write.WritableCellFormat CBwcfF3 = new jxl.write.WritableCellFormat(
font3);
jxl.write.WritableCellFormat CBwcfF4 = new jxl.write.WritableCellFormat();
CBwcfF1.setAlignment(jxl.write.Alignment.CENTRE);
CBwcfF2.setAlignment(jxl.write.Alignment.RIGHT);
CBwcfF3.setAlignment(jxl.write.Alignment.CENTRE);
CBwcfF3.setBorder(Border.ALL, jxl.format.BorderLineStyle.THIN,
Colour.BLACK);
CBwcfF4.setBorder(Border.ALL, jxl.format.BorderLineStyle.THIN,
Colour.BLACK);
Label labelhead16 = new Label(0, 0, "透明球统计信息表", CBwcfF1);
sheet.addCell(labelhead16);
sheet.mergeCells(0, 0, 12, 0);
sheet.mergeCells(0, 1, 12, 1);
sheet.setColumnView(0, 5);
sheet.setColumnView(1, 25);
sheet.setColumnView(2, 25);
Label labelhead0 = new Label(0, 2, " 序号", CBwcfF3);
Label labelhead1 = new Label(1, 2, " 日 期", CBwcfF3);
Label labelhead2 = new Label(2, 2, " 应召数量", CBwcfF3);
sheet.addCell(labelhead0);
sheet.addCell(labelhead1);
sheet.addCell(labelhead2);
for (int i = 0; i < list.size(); i++) {
ReportCallInfo data=list.get(i);
Label label0 = new Label(0, i + 3, i + 1 + "", CBwcfF4);
Label label1 = new Label(1, i + 3, formatString(data
.getNowday()), CBwcfF4);
Label label2 = new Label(2, i + 3, formatString(data
.getCallnum()), CBwcfF4);
sheet.addCell(label0);
sheet.addCell(label1);
sheet.addCell(label2);
}
log.debug("导出excel成功");
book.write();
book.close();
}catch (Exception e) {
e.printStackTrace();
}
return path;
}
public String formatString(String str) {
if (str == null) {
str = " ";
}
return str;
}
}
作者:cuiran
http://www.dengb.com/Javabc/529584.htmlwww.dengb.comtruehttp://www.dengb.com/Javabc/529584.htmlTechArticle[java] /** * ReportExportAction.java * 版权所有(C) 2012 * 创建:cuiran 2012-08-14 10:38:21 */ package com.wpn.web.action.report; import java.io.BufferedInputStream; import java...
java jxl 教程,java action jxl 生成并下载excel相关推荐
- java awt 教程,Java AWT教程
Java AWT教程 Java AWT(抽象窗口工具包)是一种API,用于使用Java开发GUI或基于窗口的应用程序. Java AWT组件是平台相关的,即,组件是根据操作系统视图显示的. AWT是重 ...
- java原理教程,java基础之运行原理(一),java基础运行原理
java基础之运行原理(一),java基础运行原理 java的核心配置:JDK JDK主要包括三个部分 1.Jre:java的运行环境 2.Java的工具:java的编译器(java.c.exe). ...
- Java官方教程Java Tutorial
概述 The Java Tutorials have been written for JDK 8. Examples and practices described in this page don ...
- IT兄弟连 Java语法教程 Java平台的版本划分
自从Sun公司推出Java以来,就力图使之无所不能.Java发展至今,按应用范围划分为3个版本,即Java SE.Java EE和Java ME,也就是SunOne(Open Net Environm ...
- java awt 教程,Java AWT教程介绍
本文概述 Java AWT(抽象窗口工具包)是一种API, 用于使用Java开发GUI或基于窗口的应用程序. Java AWT组件是依赖于平台的, 即, 根据操作系统的视图显示组件. AWT是重量级的 ...
- Java性能教程– Java 8流有多快?
在此JAX Magazine的预览预览中,JAX伦敦发言人Angelika Langer为使用Java流的任何人回答了最重要的问题:它们真的更快吗? Java 8是JDK收集框架的主要新增功能,即流A ...
- Java语法教程-Java开发环境安装JDK
因为我们要开发Java程序,所以必须在我们的计算机中安装Sun(Oracle)公司提供给我们的JDK.目前最新版本的JDK是JDK10,但是我们以学习JDK8为主,所以我们要安装的版本是JDK8.安装 ...
- IT兄弟连 Java语法教程 Java的发展历程
只有少数几种编程语言对程序设计带来过根本性的影响.其中,Java的影响由于迅速和广泛而格外突出.可以毫不夸张的说,1995年Sun公司发布的Java1.0给计算机程序设计领域带来了一场变革.这场变革迅 ...
- java scanner 教程,Java Scanner 类 - Java 入门教程
一直以来,我们都使用 System.out.println() 方法向屏幕打印内容,那么如何接收输入的内容呢?本小节所学习的 Scanner 类就可以实现对输入内容的接收.在本小节,我们将学习 Sca ...
最新文章
- .NET/C#中对自定义对象集合进行自定义排序的方法
- Java中主线程如何捕获子线程抛出的异常
- 网易云信荣获2021年度智慧教育典型案例奖项,并入选《智慧教育发展及产业图谱研究报告》...
- SEO切忌犯的9种作弊手段
- WebKit Layout 数据结构
- 双重for_测试双重图案
- haut-1280 诡异的迷宫
- 九大背包问题专题--二维费用的背包问题
- 设计模式、重构.pdf
- JDK各版本新特性(完整版)
- 努比亚手机浏览器 安全证书失效_今日热闻 | OnePlus 8海外版发布、Redmi科幻大片第一部公布、努比亚Play 5G宣布、快播正式破产拍卖...
- 静态路由 直连路由 拓扑
- springboot项目logback.xml或者logback-spring.xml中读取不到application.yml或application.properties配置文件中的配置解决办法
- 求齐次线性方程组的基础解系matlab,MATLAB学习笔记:齐次线性方程组的基础解系...
- php被挂马,近日报网站被挂马的解决方法
- bbys_tu_2016
- java毕业设计选题基于JavaWeb项目实现的高校学生在线选课系统
- ubuntu18下载utuntu18镜像
- 最佳阵容怎么找不到服务器,最佳阵容新服最佳782服开服时间表_最佳阵容新区开服预告_第一手游网手游开服表...
- 分部积分法的快速运算 表格法