/**
* 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. python的三种控制流

    什么是控制流 >>控制代码执行顺序的语句 >>python中有哪些控制流 >>顺序结构 >>> a = 7 >>> print( ...

  2. 【Linux】使用 PXE+Kickstart 无人值守批量安装系统

    一.PXE背景知识 通过 PXE+DHCP+TFTP+VSftpd+Kickstart 服务程序搭建出无人值守安装系统,从而批量部署客户机系统. PXE(Preboot eXecute Environ ...

  3. 牛客网(string::find()函数回忆一下)

    链接:https://www.nowcoder.com/acm/contest/109/B来源:牛客网 给出两个串s和x 定义s中的某一位i为好的位置,当且仅当存在s的子序列 满足y=x且存在j使得i ...

  4. java对象-String的用法

    以某字符串结尾:“”.endwith("") 字符串比较:equals(anotherstr) 命名遵循英文语法

  5. [剑指Offer] 42.和为S的两个数字

    题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 输出描述: 对应每个测试案例,输出两个数,小的先输出. [思 ...

  6. TCP/IP Note4

    TCP/IP邮件 你的电子邮件程序会使用不同的TCP/IP协议: 使用SMTP来发送邮件: 使用POP从邮件服务器下载邮件: 使用IMAP连接到邮件服务器 1. SMTP - 简单邮件传输协议 SMT ...

  7. Hadoop上配置Hbase数据库

    已有环境: 1. Ubuntu:14.04.2 2.jdk: 1.8.0_45 3.hadoop:2.6.0 4.hBase:1.0.0 详细过程: 1.下载最新的Hbase,这里我下载的是hbase ...

  8. bug 跟蚊子的相似之处

    bug 跟蚊子的相似之处: 1.不知道藏在哪里. 2.不知道有多少. 3.总是在你即将睡觉休息的时候出现. 2 A:最近在看<一拳超人>,觉得咱们程序猿跟埼玉老师有点像啊! B:哪里像了? ...

  9. 使用def文件简化dll导出

    原文链接地址:http://www.cnblogs.com/TianFang/archive/2013/05/04/3059073.html 在C++中,我们可以通过 __declspec(dllex ...

  10. pb_ds

    #include<ext/pb_ds/priority_queue.hpp>#define ll long long#define pa pair<ll,int>using n ...