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 ...
随机推荐
- java中hashCode()方法的作用
hashcode方法返回该对象的哈希码值. hashCode()方法可以用来来提高Map里面的搜索效率的,Map会根据不同的hashCode()来放在不同的位置,Map在搜索一个对象的时候先 ...
- 深度学习 vs 机器学习 vs 模式识别
http://www.csdn.net/article/2015-03-24/2824301 [编者按]本文来自CMU的博士,MIT的博士后,vision.ai的联合创始人Tomasz Malisie ...
- libSVM的数据格式
首先介绍一下 libSVM的数据格式 Label 1:value 2:value -. Label:是类别的标识,比如上节train.model中提到的1 -1,你可以自己随意定,比如-10,0,15 ...
- 《zw版·Halcon-delphi系列原创教程》 邮票艺术品自动分类脚本
<zw版·Halcon-delphi系列原创教程> 邮票艺术品自动分类脚本 邮票艺术品自动分类脚本,是个综合应用,有不同尺寸图像的自动识别.区域分割 还有作品附近文字的自动分割 此类项目, ...
- 《OpenGL着色语言》理解点记录三
“帧缓冲区”中的“帧”的含义? “帧”是连续图像中的一幅,3D可视化程序最终都是转化为一幅幅的图像输出在显示器上,这一幅幅的图像叫做叫“帧”. 解释“glBlendFunc(GL_SRC_AL ...
- ASP.NET MVC的TempData(转载)
本文章基于ASP.NET MVC Preview5. ASP.NET MVC的TempData用于传输一些临时的数据,例如在各个控制器Action间传递临时的数据或者给View传递一些临时的数据,相信 ...
- 【DP水题】投票问题(二)
投票问题(一) [试题描述] 欧阳文和欧阳武竞选学联主席,汪梁森负责唱票,共有m+n张,结果欧阳文获胜,已知欧阳文和欧阳武分别获得 m 张票和 n 张票(m>n).现在请你计算在唱票过程中欧阳文 ...
- 使用QTP对Flight的登录界面进行测试
一.测试用例设计 现在使用QTP对案例程序进行测试, 设计测试用例的要求为: 用户名长度大于等于6个字符 必须为字母[o-z,O-Z]和数字[0-9]组成 不能为空,空格或者特殊字符 正确的密码为:M ...
- MYSQL 下一些常用操作命令:新建用户、修改密码、修改登录host等
1.登录服务器 mysql -u <用户名> -p 2.增加用户,并同时授权操作权限 grant select,insert,update,delete on <数据库>.* ...
- STM32的寄存器控制SDA_IN()/SDA_OUT()
#define SDA_IN() {GPIOA->CRL&=0X0FFFFFFF;GPIOA->CRL|=(u32)8<<28;}#define SDA_OUT() ...