/**
* execl Export
*/
private void createExecl(HttpServletRequest request, HttpServletResponse response, List<PlaneStatement> list)
{
String docsPath = request.getSession().getServletContext().getRealPath("docs");
String fileName = "export2007_" + System.currentTimeMillis() + ".xlsx";
String filePath = docsPath + FILE_SEPARATOR + fileName;
System.out.println("docsPath = " + docsPath);
System.out.println("filePath=" + filePath);
File file = new File(docsPath);
if(!file.exists()){
file.mkdir();
} OutputStream os = null;
try
{
// 输出流
os = new FileOutputStream(filePath);
// 工作区 XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("sheet1"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
for (int i = 0; i <= list.size(); i++)
{
// 创建第一个sheet
// 生成第一行
XSSFRow row = sheet.createRow(i);
if (i != 0)
{
PlaneStatement p = list.get(i-1);
System.out.println("execl:"+p);
if(p.getId()!=null){
row.createCell(0).setCellValue(p.getId());
} }
else
{
row.createCell(0).setCellValue("序号");
}
}
// 写文件
wb.write(os);
}
catch(Exception e)
{
e.printStackTrace();
} finally
{
if (os != null)
{
try
{
os.close();
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
SysUtils.download(filePath, response);
}

  

/**
* 下载
*
* @param path
* @param response
*/
public static void download(String path, HttpServletResponse response)
{
InputStream fis = null;
OutputStream toClient = null;
File file = null;
try
{
// path是指欲下载的文件的路径。
file = new File(path);
// 取得文件名。
String filename = file.getName();
// 以流的形式下载文件。
fis = new BufferedInputStream(new FileInputStream(path));
byte[] buffer = new byte[fis.available()];
fis.read(buffer); // 清空response
response.reset();
// 设置response的Header
response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes()));
response.addHeader("Content-Length", "" + file.length());
toClient = new BufferedOutputStream(response.getOutputStream());
response.setContentType("application/vnd.ms-excel;charset=gb2312");
toClient.write(buffer);
toClient.flush(); }
catch(IOException ex)
{
ex.printStackTrace();
} finally
{ try
{
if (fis != null)
{
fis.close();
}
if (toClient != null)
{
toClient.close();
}
}
catch(IOException e)
{
e.printStackTrace();
}
// 删除文件
if(file.exists()){
file.delete();
}
}
}

  

    private static final String   FILE_SEPARATOR = System.getProperties().getProperty("file.separator");

  

java 生成execl下载的更多相关文章

  1. 【转】Java生成plist下载ipa文件

    我们在上传ipa想要安装的时候必须要通过plist文件去下载,并且还要遵循 itms-services协议. 意思就是,第一步我们要生成一个plist文件, 第二步生成一个html文件,用来指向pli ...

  2. 报表生成poi----java操作java对象生成execl表单

    1.Apache POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程式对Microsoft Office格式档案读和写的功能. .NET的开发人员则 ...

  3. java 生成简单word(利用Itext工具),生成简单Excel,以及下载笔记

    1.java 生成简单word(包含图片表格) pom中加入itext 相关依赖 <dependency> <groupId>com.lowagie</groupId&g ...

  4. Java生成和操作Excel文件(转载)

    Java生成和操作Excel文件   JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该A ...

  5. 利用JAVA生成二维码

    本文章整理于慕课网的学习视频<JAVA生成二维码>,如果想看视频内容请移步慕课网. 维基百科上对于二维码的解释. 二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图 ...

  6. JAVA生成条形码

    1.下载生成条形码所需要的jar包barcode4j.jar: 2.java生成条形码代码 import java.awt.image.BufferedImage;import java.io.Fil ...

  7. Java生成CSV文件实例详解

    本文实例主要讲述了Java生成CSV文件的方法,具体实现步骤如下: 1.新建CSVUtils.java文件: package com.saicfc.pmpf.internal.manage.utils ...

  8. java生成简单Excel工作薄

    前言: 代码都是建立在实际需求上的,上周做完一个调外部电影券接口的项目,这周产品又要excel表格,大致内容为:券所属影院.图片URL.等信息制作为excel表格,把每次同步过来的数据给他分析. jx ...

  9. Java生成名片式的二维码源码分享

    世界上25%的人都有拖延症——但我觉得这统计肯定少了,至少我就是一名拖延症患者.一直想把“Java生成名片式(带有背景图片.用户网络头像.用户昵称)的二维码”这篇博客分享出来,但一直拖啊拖,拖到现在, ...

随机推荐

  1. eth day05

    智能合约众筹实战 淘宝众筹,京东众筹 https://izhongchou.taobao.com/index.htm 分析商业模式 解决京东众筹的痛点 https://izhongchou.taoba ...

  2. velocity模板加载

    http://hi.baidu.com/ly_dayu/item/828b09c5c3c5e547a8ba9409 velocity使用基本来说比较简单,但在加载模板时老出问题,很多初学者经常会遇到找 ...

  3. scrapy使用记录

    1 进入pip安装目录 python -m pip install --upgrade pip pip install Scrapy 2. 创建一个项目 scrapy startproject tes ...

  4. To Chromium之VS调试追踪

    启动的code: for(;;){...WaitForWork()}base.dll!base::MessagePumpForUI::DoRunLoop                         ...

  5. vue2.0实现页面刷新时某个input获得focus

    通过自定义指令:

  6. 解决Git无法同步空文件夹的问题

    思路:在每个空文件夹下创建空文件,同步后再删除 package org.zln.module1.demo1; import org.apache.log4j.Logger; import java.i ...

  7. 使用XML传递数据

    HTML <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF- ...

  8. WebSocket简单介绍(WebSocket JavaScript 接口)(2)

    上一节介绍了 WebSocket 规范,其中主要介绍了 WebSocket 的握手协议.握手协议通常是我们在构建 WebSocket 服务器端的实现和提供浏览器的WebSocket 支持时需要考虑的问 ...

  9. IE提示是否只查看安全传送的网页内容

    IE选项-->安全-->点上面那个地球internet-->点下面那个 自定义级别-->找到“其他”-->显示混合内容,改为启用,重启打开下IE,就可以了

  10. ZOJ 3229 Shoot the Bullet | 有源汇可行流

    题目: 射命丸文要给幻想乡的居民照相,共照n天m个人,每天射命丸文照相数不多于d个,且一个人n天一共被拍的照片不能少于g个,且每天可照的人有限制,且这些人今天照的相片必须在[l,r]以内,求是否有可行 ...