[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相关推荐

  1. java awt 教程,Java AWT教程

    Java AWT教程 Java AWT(抽象窗口工具包)是一种API,用于使用Java开发GUI或基于窗口的应用程序. Java AWT组件是平台相关的,即,组件是根据操作系统视图显示的. AWT是重 ...

  2. java原理教程,java基础之运行原理(一),java基础运行原理

    java基础之运行原理(一),java基础运行原理 java的核心配置:JDK JDK主要包括三个部分 1.Jre:java的运行环境 2.Java的工具:java的编译器(java.c.exe). ...

  3. Java官方教程Java Tutorial

    概述 The Java Tutorials have been written for JDK 8. Examples and practices described in this page don ...

  4. IT兄弟连 Java语法教程 Java平台的版本划分

    自从Sun公司推出Java以来,就力图使之无所不能.Java发展至今,按应用范围划分为3个版本,即Java SE.Java EE和Java ME,也就是SunOne(Open Net Environm ...

  5. java awt 教程,Java AWT教程介绍

    本文概述 Java AWT(抽象窗口工具包)是一种API, 用于使用Java开发GUI或基于窗口的应用程序. Java AWT组件是依赖于平台的, 即, 根据操作系统的视图显示组件. AWT是重量级的 ...

  6. Java性能教程– Java 8流有多快?

    在此JAX Magazine的预览预览中,JAX伦敦发言人Angelika Langer为使用Java流的任何人回答了最重要的问题:它们真的更快吗? Java 8是JDK收集框架的主要新增功能,即流A ...

  7. Java语法教程-Java开发环境安装JDK

    因为我们要开发Java程序,所以必须在我们的计算机中安装Sun(Oracle)公司提供给我们的JDK.目前最新版本的JDK是JDK10,但是我们以学习JDK8为主,所以我们要安装的版本是JDK8.安装 ...

  8. IT兄弟连 Java语法教程 Java的发展历程

    只有少数几种编程语言对程序设计带来过根本性的影响.其中,Java的影响由于迅速和广泛而格外突出.可以毫不夸张的说,1995年Sun公司发布的Java1.0给计算机程序设计领域带来了一场变革.这场变革迅 ...

  9. java scanner 教程,Java Scanner 类 - Java 入门教程

    一直以来,我们都使用 System.out.println() 方法向屏幕打印内容,那么如何接收输入的内容呢?本小节所学习的 Scanner 类就可以实现对输入内容的接收.在本小节,我们将学习 Sca ...

最新文章

  1. .NET/C#中对自定义对象集合进行自定义排序的方法
  2. Java中主线程如何捕获子线程抛出的异常
  3. 网易云信荣获2021年度智慧教育典型案例奖项,并入选《智慧教育发展及产业图谱研究报告》...
  4. SEO切忌犯的9种作弊手段
  5. WebKit Layout 数据结构
  6. 双重for_测试双重图案
  7. haut-1280 诡异的迷宫
  8. 九大背包问题专题--二维费用的背包问题
  9. 设计模式、重构.pdf
  10. JDK各版本新特性(完整版)
  11. 努比亚手机浏览器 安全证书失效_今日热闻 | OnePlus 8海外版发布、Redmi科幻大片第一部公布、努比亚Play 5G宣布、快播正式破产拍卖...
  12. 静态路由 直连路由 拓扑
  13. springboot项目logback.xml或者logback-spring.xml中读取不到application.yml或application.properties配置文件中的配置解决办法
  14. 求齐次线性方程组的基础解系matlab,MATLAB学习笔记:齐次线性方程组的基础解系...
  15. php被挂马,近日报网站被挂马的解决方法
  16. bbys_tu_2016
  17. java毕业设计选题基于JavaWeb项目实现的高校学生在线选课系统
  18. ubuntu18下载utuntu18镜像
  19. 最佳阵容怎么找不到服务器,最佳阵容新服最佳782服开服时间表_最佳阵容新区开服预告_第一手游网手游开服表...
  20. 分部积分法的快速运算 表格法

热门文章

  1. python如何区分文件类型_Python库 使用filetype精确判断文件类型
  2. 用scrapy爬取淘车网站,选取宝车
  3. 国泰君安证券的银行业净利润预测
  4. 关于隐形车衣,有些事情你一定要知道!(上篇)
  5. 谷歌翻译浏览器扩展,替换国内服务器版
  6. 【Python】安装crypto库(直接安装pycrypto)
  7. 手机如何用python抢鞋_使用python抢购魅族手机,坑爹的Python脚本,别入坑~
  8. 阿里云服务器建站教程来了(十分钟网站上线)
  9. 程序计算精确圆周率Pai的方法
  10. vue3.x项目图书兄弟项目上遇到的问题及解决办法的记录