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 ...
随机推荐
- C#: 数据绑定
数据绑定是分离UI和后端主逻辑程序的一种好的办法.这里总结下TextBox, Label, ComboBox, ListBox, DataGridView的数据绑定 数据绑定都是通过DB来和UI控件的 ...
- poj: 1207
好吧这题竟然还有先大后小的可能,能不这么恶心下吗.. #include <iostream> #include <stdio.h> #include <string.h& ...
- C++新手之培养良好的编程风格
内功深厚的武林高手出招往往平淡无奇.同理,编程高手也不会用奇门怪招写程序.良好的编程风格是产生高质量程序的前提. 下面以C++为例,来给大家介绍. 一. 命名约定 有不少人编程时用拼音给函数或变量命名 ...
- HDU 4897 Little Devil I(树链剖分)(2014 Multi-University Training Contest 4)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4897 Problem Description There is an old country and ...
- 【pyQuery分析论坛】精英乒乓论坛
In [25]: t= h('table') In [26]: In [26]: t('.mainbox').text() Out[26]: u'\u72b6\u6001 \u4e3b\u9898 \ ...
- XMl的解析
MainActivitypackage com.example.secondweek_test2; import java.io.BufferedInputStream; import java.io ...
- web跨页弹窗选值
最近在项目中看到这样一种效果——点击当前网页文本框,然后弹出一个缩小的网页,并在网页里选择或填写数据,然后又返回当前网页,小网页关闭.感觉非常不错,其实在以前网上也看见过,只是当时没有留心.今天抽时间 ...
- 【python cookbook】【数据结构与算法】1将序列分解为单独的变量
如果对象是可迭代的(任何序列),则可以进行分解操作,包括元组.列表.字符串.文件.迭代器以及生成器,可通过简单的一个赋值操作分解为单独的变量. 唯一要求:变量的总数和序列相吻合,否则将出错: Pyth ...
- java几道简单的面试题目
1. 请问以下程序会输出什么? public class Test { public static void main(String[] args) { Par ...
- Mysql slow query log
一.概念部分: 顾名思义,慢查询日志中记录的是执行时间较长的query,也就是我们常说的slow query,通过设--log-slow-queries[=file_name]来打开该功能并设置记录 ...