导出Excel(终极版)
/**
* 导出excel 案例
*/
public void exportExcel(){
long beginTime = System.currentTimeMillis();
HttpServletResponse response= ServletActionContext.getResponse();
OutputStream os=null;
if(activityForm==null){
activityForm=new ActivityForm();
}
try {
activityForm.setStartSize((getCurrentpage()-1)*getPagesize());
activityForm.setPageSize(getPagesize());
activityForm.setUserInfoId(getUserInfoSession().getId());
PageList<ActivityForm> page=iActivityService.getPage(activityForm);
activityForm.setPageSize(page.getTotalcount());
List<ActivityForm> activitys=iActivityService.getPage(activityForm).getResult(); Workbook createbook = createActivityBook(activitys);
// 创建下载文件名
String uploadFileName = System.currentTimeMillis() + ".xls";
os = response.getOutputStream();// 取得输出流
response.reset();// 清空输出流
response.setHeader("Content-disposition", "attachment; filename="+ uploadFileName);// 设定输出文件头
response.setContentType("application/x-download");
createbook.write(os);
os.close();
} catch (Exception e) {
error("请求exportActivity方法异常",e);
}finally{
printTime(beginTime, getClass(), "exportActivity");
}
}
public static HSSFWorkbook createActivityBook(List<ActivityForm> list){
// 创建Excel文档
HSSFWorkbook hwb = new HSSFWorkbook();
ActivityForm activityForm=null;
// sheet 对应一个工作页
HSSFSheet sheet = hwb.createSheet("导出活动列表信息");
int CountColumnNum = 5; //指定列头个数
HSSFRow firstrow = sheet.createRow(0); // 下标为0的行开始
HSSFCell[] firstcell = new HSSFCell[CountColumnNum];
String[] names = new String[CountColumnNum];
names[0] = "活动名称";
names[1] = "活动类型";
names[2] = "活动链接";
names[3] = "备注";
names[4] = "创建时间";
for (int j = 0; j < CountColumnNum; j++) {
firstcell[j] = firstrow.createCell(j);
firstcell[j].setCellValue(new HSSFRichTextString(names[j]));
}
for (int i = 0; i < list.size(); i++) {
// 创建一行
HSSFRow row = sheet.createRow(i + 1);
// 得到要插入的每一条记录
activityForm = list.get(i);
for (int colu = 0; colu < CountColumnNum; colu++) {
// 在一行内循环
HSSFCell name = row.createCell(0);
HSSFCell type = row.createCell(1);
HSSFCell url = row.createCell(2);
HSSFCell remark = row.createCell(3);
HSSFCell createDate = row.createCell(4);
name.setCellValue(activityForm.getName());
type.setCellValue(activityForm.getType());
url.setCellValue(activityForm.getUrl());
remark.setCellValue(activityForm.getRemark());
createDate.setCellValue(activityForm.getCreateDate());
}
}
return hwb;
}
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
导出Excel(终极版)的更多相关文章
- [django]数据导出excel升级强化版(很强大!)
不多说了,原理采用xlwt导出excel文件,所谓的强化版指的是实现在网页上选择一定条件导出对应的数据 之前我的博文出过这类文章,但只是实现导出数据,这次左思右想,再加上网上的搜索,终于找出方法实现条 ...
- Python导出Excel为Lua/Json/Xml实例教程(三):终极需求
相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验 Python导出E ...
- VB.NET版机房收费系统---导出Excel表格
datagridview,翻译成中文的意思是数据表格显示,使用DataGridView控件,能够显示和编辑来自不同类型的数据源的表格,将数据绑定到DataGridView控件很easy和直观,大多数情 ...
- 【EXCEL终极总结分享】基于NPOI扩展封装的简易操作工具类库(简单灵活易用,支持导出、导入、上传等常见操作)
对于EXCEL的导入.导出,我之前已分享过多次,比如: 第一种方案:<我写的一个ExcelHelper通用类,可用于读取或生成数据>这个主要是利用把EXCEL当成一个DB来进行获取数据,导 ...
- 【机房收费系统C#版】——导出Excel
前言 机房合作開始好长了一段时间.反重复复开了几次会,项目也是一拖再拖,作为组长.有80%的责任都在于我.为了不让这个项目陪着我过春节.要求自己一定要在这几天敲完. 还是一样的问题,用C#敲,从一開始 ...
- 将查询到的数据导出到Excel终结版
吐槽 最近新项目需要用到导出数据到Excel,试了试之前写的一篇博文,但是感觉那个不太好,主要原因是没能实现样式控制,今天我们就来介绍一种新的导出Excel方法,而且这种方法很轻量级,它利用xml生成 ...
- C#使用Aspose.Cells导出Excel简单实现
首先,需要添加引用Aspose.Cells.dll,官网下载地址:http://downloads.aspose.com/cells/net 将DataTable导出Xlsx格式的文件下载(网页输出) ...
- Java导出excel
一.介绍 常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实际的开发中,很多时候需要实现导入.导出Excel的应用. ...
- Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验
Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出E ...
随机推荐
- 牛客练习赛48 C,D,E
C 小w的糖果 题意:3种操作,第一种是使pos右边的数全部+1,第二种是pos右边的数依次+k(k从1开始递增),第三种是pos右边的数依次+k^2(k从1开始递增). 解法:第一种我们很容易想到差 ...
- 单核cpu实现多任务原理
- Http2协议简介
1.概述 和http1兼容.HTTP/2 没有改动 HTTP 的应用语义. HTTP 方法.状态代码.URI 和标头字段等核心概念一如往常. 不过,HTTP/2 修改了数据格式化(分帧)以及在客户端与 ...
- Delphi 滚动条的使用
DELPHI的滚动条默认发送消息格式: function TControl.Perform( Msg: Cardinal; WParam: WPARAM; LParam: LPARAM): LRESU ...
- Yii2 搜索
搜索的形式: 第一种,点击空白处: <?php $data=['0'=>'已删除','10'=>'正常','1'=>'锁定']; ?> <table style=' ...
- 电脑U盘启动制作
1.用老毛桃.大白菜制作U盘驱动时,不要直接默认一键制作.不然安装的系统会植入第三方的软件的.一定要进行个性化设置中取消赞助商.
- 搜索引擎优化 TF_IDF之Java实现
实现之前,我们要事先说明一些问题: 我们用Redis对数据进行持久化,存两种形式的MAP: key值为term,value值为含有该term的urlkey值为url,value值为map,记录term ...
- java基础集合底层介绍
ArrayList.Vector.HashMap.HashTable.HashSet的默认初始容量.加载因子.扩容增量 这里要讨论这些常用的默认初始容量和扩容的原因是: 当底层实现涉及到扩容时,容器或 ...
- linux 查看cpu,memory
https://www.cnblogs.com/ctypyb2002/p/9792951.html
- AI应用在金融领域,如何能够在商业上有所突破
AI应用在金融领域,如何能够在商业上有所突破 如今,随着社会不断发展,技术不断进步,国内外各大金融机构已经在大数据.人工智能.区块链等新技术上有很多尝试,智能客服.智能投顾等新金融形式也早已不新鲜.那 ...