excle下载

@requestMAPPing(value="/download_index")

public String downloadexcel(HttpServletRequest request,HttpServletresponse response,String name) {

WritableWorkbook wbook = null;

try {

String flieName = name;

// 取得输出流

os = response.getOutputStream();

response.reset();// 清空输出流

// 设定输出文件头

response.setheader("content-Disposition", "attachment; filename=" + new String(flieName.getBytes("UTF-8"), "ISO8859-1") + ".xls");

// 定义输出类型

response.setcontenttype("application/msexcel;charset=utf-8");

// 建立excel文件

wbook = Workbook.createWorkbook(os);

//要下载的list数据

List unifiedVOList = new ArrayList();

// 设置数据

setWorkBookData(unifiedVOList, wbook,flieName);

if (wbook.getNumberOfSheets() > 0) {

wbook.write();

}

wbook.close();

os.close();

} catch (Exception e) {

e.printstacktrace();

}finally {

if(wbook != null) {

try {

wbook.close();

} catch (WriteException | IOException e) {

e.printStackTrace();

}

}

if(os != null) {

try {

os.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

return null;

}

String [] codes 是页面传过来的要查询的内容,name 是传过来动态表名。for循环查出List数据,然后统一用unifiedVOList.addAll()合在一起。然后将list数据集合传入方法内、work、表名传入方法内。private void setWorkBookData(List giftRecords, WritableWorkbook wbook,String name)

throws WriteException, RowsExceededException {

final integer EXCEL_MAX_NUMBER = 65535;

WritableCellformat wc = new WritableCellFormat();

// 设置居中

wc.setAlignment(Alignment.CENTRE);

simpledateformat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

WritableSheet wsheet = null;

int sheetNumber = 0;

if (giftRecords.size() % EXCEL_MAX_NUMBER != 0) {

sheetNumber = giftRecords.size() / EXCEL_MAX_NUMBER + 1;

} else {

sheetNumber = giftRecords.size() / EXCEL_MAX_NUMBER;

}

for (int j = 0; j < sheetNumber; j++) {

wsheet = wbook.createSheet(name + (j + 1), j); // sheet名称

// 开始生成主体内容

wsheet.addCell(new Label(0, 0, "名称", wc));

wsheet.setColumnView(0, 32);

wsheet.addCell(new Label(1, 0, "时间", wc));

wsheet.setColumnView(1, 20);

wsheet.addCell(new Label(2, 0, "数据", wc));

wsheet.setColumnView(2, 32);

wsheet.addCell(new Label(3, 0, "单位", wc));

wsheet.setColumnView(3, 30);

int start = EXCEL_MAX_NUMBER * j;

int end = EXCEL_MAX_NUMBER + start;

for (int i = start, k = giftRecords.size(); i < k && i < end; i++) {

UnifiedVO unifiedVO = giftRecords.get(i);

int row = i - start + 1;

wsheet.addCell(new Label(0, row, unifiedVO .getKey(), wc));

wsheet.addCell(new Label(1, row, unifiedVO .getDate(), wc));

wsheet.addCell(new Label(2, row, unifiedVO .getData(), wc));

wsheet.addCell(new Label(3, row, unifiedVO .getUnit(), wc));

}

}

}

wsheet.addCell(new Label(0, 0, "名称", wc))

wsheet.addCell(new Label(1, 0, "时间", wc));

wsheet.addCell(new Label(2, 0, "数据", wc));

wsheet.addCell(new Label(3, 0, "单位", wc));

上面的字段一一对应VO字段

wsheet.addCell(new Label(0, row, unifiedVO .getKey(), wc));

wsheet.addCell(new Label(1, row, unifiedVO .getDate(), wc));

wsheet.addCell(new Label(2, row, unifiedVO .getData(), wc));

wsheet.addCell(new Label(3, row, unifiedVO .getUnit(), wc));

对应的maven API :

net.sourceforge.jexcelapi

jxl

2.6.12

=====================================================================================

poi 导出:

org.apache.poi

poi

3.17

最简单的下载数据实现:public test(HttpServletRequest request,HttpServletResponse response) {

List> arrayList = new ArrayList();

OutputStream os = null;

// 取得输出流

try {

os = response.getOutputStream();

} catch (IOException e2) {

e2.printStackTrace();

}

response.reset();// 清空输出流

//1.在内存中创建一个excel文件

HSSFWorkbook hssfWorkbook = new HSSFWorkbook();

//2.创建工作簿

HSSFSheet sheet = hssfWorkbook.createSheet();

//3.创建标题行

HSSFRow titlerRow = sheet.createRow(0);

HSSFCellStyle createCellStyle = hssfWorkbook.createCellStyle();//创建单元格样式

createCellStyle.setFillForegroundcolor((short) 255);// 设置背景色

createCellStyle.setAlignment(HorizontalAlignment.CENTER_SELECTION); // 居中

createCellStyle.setBorderTop(BorderStyle.SLANTED_DASH_DOT);

titlerRow.createCell(0).setCellValue("营销顾问");

titlerRow.setRowStyle(createCellStyle);

for (Object o : arrayList) {

//获取最后一行的行号

int lastrownum = sheet.getLastRowNum();

HSSFRow dataRow = sheet.createRow(lastRowNum + 1);

dataRow.createCell(0).setCellValue(o.get营销顾问());

}

//5.创建文件名

String fileName = "区域数据统计.xls";

//9.设置信息头

response.setContentType(fileName);

try {

fileName = new String (fileName.getBytes ("utf-8"),"ISO8859-1");

} catch (UnsupportedEncodingException e2) {

e2.printStackTrace();

}

response.setHeader("Content-Disposition","attachment;filename="+fileName);

//10.写出文件,关闭流

try {

hssfWorkbook.write(os);

} catch (IOException e1) {

}

try {

hssfWorkbook.close();

} catch (IOException e) {

e.printStackTrace();

}

}

相关阅读

Java SE Development Kit 6u41

Product / File Description

File Size

Download

password

Linux x86

65.43 MB

jdk-6u41-

注:(fpSpread1为farpoint名,fpSpread1_Sheet1为表名)

用farpoint的时,设置视区随滚动条移动(鼠标按着,farpoint的内容更新到滚动条的区域

1:简单的截屏——截全屏

package com.auto.Test;

import java.awt.Dimension;

import java.awt.Rectangle;

关于java集合类Collections.在前端开发中可能用到的比较少,不过java后台用到的应该挺多,比较后台主要是基于数据库的读写的,对于并发

在多线程的场景中,我们需要保证数据安全,就会考虑同步的方案,通常会使用synchronized或者lock来处理,使用了synchronized意味着内核

java jxl poi_「excle下载」java实现下载excle(jxl、poi 两种方式) - seo实验室相关推荐

  1. ubuntu 安装java jdk_「ubuntu安装jdk」Ubuntu安装jdk8的两种方式 - seo实验室

    ubuntu安装jdk 安装方式: 1):通过ppa(源) 方式安装. 2):通过官网安装包安装.JDK官网下载地址 一:使用ppa(源)方式安装: 1):添加ppa源sudo add-apt-rep ...

  2. java kafka设置偏移量_kafka实战宝典:手动修改消费偏移量的两种方式

    kafka实战宝典:手动修改消费偏移量的两种方式 工作中遇到过消费端报错的问题:包括数据Invalid Message和Failed_to_UNcompress等报错信息,导致消费端的iterator ...

  3. pdf.js —— 在线预览下载打印pdf文件插件,实现的两种方式

    ViewerJS简介 ViewerJS的繁重工作是由这些令人敬畏的项目完成的: PDF.js(由Mozilla提供) WebODF(由KO GmbH提供) 运行ViewerJS就像创建链接一样简单.您 ...

  4. arraylist java 排序_「arraylist排序」java ArrayList的两种排序方法 - seo实验室

    arraylist排序 1.ArrayList使用排序的初衷 我们知道ArrayList的好处是可以不用限定容器的大小,他会根据元素的增加自己扩大.但是存储进去的数据类型都会变成object,虽然每个 ...

  5. python 分词工具_「分词工具」干货 | 史上最全中文分词工具整理 - seo实验室

    分词工具 作者 | fendouai 分词服务接口列表 二.准确率评测: THULAC:与代表性分词软件的性能对比 我们选择LTP-3.2.0 .ICTCLAS(2015版) .jieba(C++版) ...

  6. 华硕笔记本k555拆机图解_「华硕k401n」华硕K401笔记本电脑拆机清灰步骤详解 - seo实验室...

    华硕k401n 笔记本电脑长时间使用后存在大量灰尘,造成风扇噪音大,cpu温度高,影响计算机工作性能,威胁硬件安全.因此需要及时清灰.下面为大家分享华硕K401笔记本电脑拆机清灰步骤,有需要的朋友快快 ...

  7. android dts配置_「7.1」[RK3399][Android7.1] 移植笔记 --- 音频Codec RT5640添加 - seo实验室...

    7.1 Platform: RK3399 Kernel: v4.4.83 原理图: 数据走I2S1通道 控制走I2C1通道 输出走HPOUTL/HPOUTR 改动: DTS配置: //Kris,180 ...

  8. jq select 修改选中_「jquery select」jquery操作select(取值,设置选中) - seo实验室

    jquery select 最近工作中总出现select 和 option问题,整理一下,内容大部分源于网络资料 一.基础取值问题 例如 1.设置value为pxx的项选中 $(".sele ...

  9. mysql insert 嵌套_「insert语句」数据库插入insert语句中添加嵌套查询select - seo实验室...

    insert语句 示例: insert into mytable(X,Y,Z) Values((SELECT X from basetable WHERE ID = 8),(SELECT Y from ...

最新文章

  1. OpenCV(十四)图像阈值
  2. 复习下mybatis 中 useGeneratedKeys 和 keyProperty 含义
  3. 用机器学习分析美国新财年1万个国防项目,7054亿军费都投给了哪些技术?
  4. spring21:Aspectj实现后置通知@AfterReturning
  5. JAVA 基本运算符(摘)
  6. Python 学习笔记(半ZZ半自己写)
  7. 【CV】使用计算机视觉算法检测钢板中的焊接缺陷
  8. 第三次学JAVA再学不好就吃翔(part12)--基础语法之for循环语句
  9. HFSS中的求解类型(Solution Type)
  10. Java反射基础(二)--Fileds对象的使用
  11. 彻底解决 Jenkins Slaver 节点无法执行 Git-LFS 命令
  12. Python基础笔记(二) List、tuple、循环语句
  13. 利用mitmproxy进行抓包
  14. 自定义表单提交后返回上一页修改
  15. 计算机中取消上一步操作的是,电脑怎么撤销上一步操作
  16. uni-app引入极光im
  17. windows11下安装vivado2019
  18. prayaya v3-国产神操作系统
  19. 2015062801 - 祈福八仙水上乐园
  20. win10 系统版本号获取的三种方法

热门文章

  1. c++使用单向链表存储一组有序数据_《一起学习java和数据结构》系列-数组和链表...
  2. php开发大型网站如何优化,PHP编写大型网站问题
  3. 建立一个lstm_基于LSTM的双色球预测(一)
  4. OpenShift 之 Quarkus(1)创建第一个Quarkus应用
  5. 使用XLocalizer进行ASP.NET Core本地化
  6. Visual Studio中的第一个Django-Python应用程序
  7. GitHub:我们为什么会弃用jQuery?
  8. %3c php $str1=,ThinkPHP5.0.215.1.* 代码执行和命令执行漏洞利用
  9. 白月黑羽教python_白月黑羽Python在线教程
  10. js 正则表达式判断价格