java的报表下载代码excel
/**
* 汇总报表数据下载
* */
private ModelAndView exportSummaryDatadown(HttpServletRequest request,
HttpServletResponse response, List<InterfaceCost> interfaceCostListNew) throws Exception {
//保存到磁盘
String time = QDateTime.dateToString(new Date(), "yyyy-MM-dd HH:mi:ss");
time = time.replaceAll("-", "");
time =time.replace(":", "");
time =time.replace(" ", "");
time = time.substring(2);
String file_name = time + ".xls";
String uploadDir = request.getRealPath("/resources") + "\\Interfaceparameter\\";
OutputStream out = null;
try { File dirPath = new File(uploadDir);
if (!dirPath.exists()) {
dirPath.mkdirs();
} out = new FileOutputStream(uploadDir+file_name); // 设置第一行(表头的格式)
jxl.write.WritableFont wfc = new jxl.write.WritableFont(WritableFont.createFont("宋体"), 11, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc); // 表格样式
wcfFC.setAlignment(jxl.format.Alignment.CENTRE);// 水平居中
wcfFC.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);// 垂直居中
wcfFC.setBorder(Border.ALL, BorderLineStyle.THIN);// 线条
WritableWorkbook wb = Workbook.createWorkbook(out);// 写入流中
WritableSheet ws = wb.createSheet("sheet1", 1); int[] geshi = {30,20,20} ;// 获取列宽
for (int i = 0; i < geshi.length; i++) {
ws.setColumnView(i, geshi[i]);
} // int ioNor = 0; // 订单列记录值标识
//数据总计
jxl.write.Label name = new jxl.write.Label(0, 0, "接口名称", wcfFC);
ws.addCell(name);
jxl.write.Label count = new jxl.write.Label(1, 0, "使用次数", wcfFC);
ws.addCell(count);
jxl.write.Label amount = new jxl.write.Label(2, 0, "消费点数", wcfFC);
ws.addCell(amount); // 显示第二行以后的数据
// 设置第二行以后数据的格式
wfc = new jxl.write.WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, Colour.BLACK);
wcfFC = new WritableCellFormat(wfc);
wcfFC.setAlignment(jxl.format.Alignment.CENTRE);// 水平居中
wcfFC.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);// 垂直居中
wcfFC.setBorder(Border.ALL, BorderLineStyle.THIN);// 线条 int ioNor = 0; // 订单列记录值标识
Integer addUpTo = 0;
for(InterfaceCost interfaceCost:interfaceCostListNew){
jxl.write.Label optType = new jxl.write.Label(0, ioNor + 1, interfaceCost.getInterfaceName(), wcfFC);
ws.addCell(optType); jxl.write.Number totlecount = new jxl.write.Number(1, ioNor + 1, interfaceCost.getTotleCount(), wcfFC);
ws.addCell(totlecount); jxl.write.Number totle = new jxl.write.Number(2, ioNor + 1, interfaceCost.getTotleCost(), wcfFC);
ws.addCell(totle); addUpTo += interfaceCost.getTotleCost(); ioNor++;
//ws.mergeCells(0, ioNor, 1, ioNor);//合并单元格
} ioNor=ioNor+1;
jxl.write.Label numberName = new jxl.write.Label(0, ioNor, "合计消费 "+addUpTo.toString()+" 点", wcfFC);
ws.addCell(numberName); ws.mergeCells(0, ioNor, 2, ioNor);//合并单元格 wb.write();
wb.close();
// out.close(); } catch (Exception ex) {
ex.printStackTrace();
}finally{
if(out!=null){
out.close();
}
} //从磁盘读取
InputStream inStream = null;
OutputStream outs = null;
try {
response.setContentType("application/vnd.ms-excel");
response.addHeader("Content-Disposition", "attachment; filename="
+ file_name + ""); inStream = new FileInputStream(uploadDir+file_name);
// String lineTxt = null;
outs = response.getOutputStream();
byte[] buf = new byte[4096];
int readLength;
while (((readLength = inStream.read(buf)) != -1)) {
outs.write(buf, 0, readLength);
}
// inStream.close();
outs.flush();
// outs.close();
} catch (Exception e) {
log.error("读取文件内容出错");
e.printStackTrace();
}finally{
if(out!=null){
out.close();
}
if(inStream!=null){
inStream.close();
}
} return null;
}

java的报表下载代码excel的更多相关文章
- Java上传下载excel、解析Excel、生成Excel
在软件开发过程中难免需要批量上传与下载,生成报表保存也是常有之事,最近集团门户开发用到了Excel模版下载,Excel生成,圆满完成,对这一知识点进行整理,资源共享,有不足之处还望批评指正,文章结尾提 ...
- 使用node.js生成excel报表下载(excel-export express篇)
引言:日常工作中已经有许多应用功能块使用了nodejs作为web服务器,而生成报表下载也是我们在传统应用. java中提供了2套类库实现(jxl 和POI),.NET 作为微软的亲儿子更加不用说,各种 ...
- 2019.06.05 ABAP EXCEL 操作类代码 OLE方式(模板下载,excel上传,内表下载)
一般使用标准的excel导入方法9999行,修改了标准的excel导入FM 整合出类:excel的 模板下载,excel上传,ALV内表下载功能. 在项目一开始可以SE24创建一个类来供整体开发使用, ...
- java+web文件的上传和下载代码
一般10M以下的文件上传通过设置Web.Config,再用VS自带的FileUpload控件就可以了,但是如果要上传100M甚至1G的文件就不能这样上传了.我这里分享一下我自己开发的一套大文件上传控件 ...
- [转]Java中导入、导出Excel
原文地址:http://blog.csdn.net/jerehedu/article/details/45195359 一.介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样 ...
- Java中导入、导出Excel
原文:Java中导入.导出Excel 一.介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已 ...
- 我是陌生人 Java中导入、导出Excel
我是陌生人 Java中导入.导出Excel 一.介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是: ...
- 如何通过Java导出带格式的 Excel 数据到 Word 表格
在Word中制作报表时,我们经常需要将Excel中的数据复制粘贴到Word中,这样则可以直接在Word文档中查看数据而无需打开另一个Excel文件.但是如果表格比较长,内容就会存在一定程度的丢失,无法 ...
- java的poi技术写Excel的Sheet
在这之前写过关于java读,写Excel的blog如下: Excel转Html java的poi技术读,写Excel[2003-2007,2010] java的poi技术读取Excel[2003-20 ...
随机推荐
- SQL 启动服务方法
(1)windows开始菜单->Microsoft SQL Server 2012->配置工具->配置管理器
- Java线程总结
在java中要想实现多线程,有两种手段,一种是继续Thread类,另外一种是实现Runable接口. 对于直接继承Thread的类来说,代码大致框架是: class 类名 extends Thread ...
- ZOJ 3545 Rescue the Rabbit(AC自动机+状压DP)(The 2011 ACM-ICPC Asia Dalian Regional Contest)
Dr. X is a biologist, who likes rabbits very much and can do everything for them. 2012 is coming, an ...
- 0422 数学口袋精灵app
首先要部署这个app项目就是第一步: 一.前提下载并安装JDK 在线图解:手把手教你安装JDK http://www.lvtao.net/server/windows-setup-jdk.h ...
- Centos配置Caffe详解
http://www.tuicool.com/articles/uiuA3e
- paper 80 :目标检测的图像特征提取之(一)HOG特征
1.HOG特征: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子.它通过计算和统计图像局部区域的 ...
- oracle的索引维护
索引重建 Alter index idx_name rebuild partition index_partition_name [online nologging] 需要对每个分区索引做rebuil ...
- PHP商品秒杀倒计时
<?php //php的时间是以秒算.js的时间以毫秒算 date_default_timezone_set('PRC'); //date_default_timezone_set(" ...
- Maven(一)
Maven学习总结(一)——Maven入门 一.Maven的基本概念 Maven(翻译为"专家","内行")是跨平台的项目管理工具.主要服务于基于Java平台的 ...
- WM_SIZE
procedure WMSize (var Message: TWMSize); message WM_SIZE; 参数说明 wParam: Specifies the type of resizin ...