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++Builder 解决绘图闪动问题
使用双缓冲 Form->DoubleBuffered = true; Panel->DoubleBuffered = true;
- Ruby On Rails经典书籍下载地址
Web开发敏捷之道-应用Rails进行敏捷Web开发 http://vdisk.weibo.com/s/t47M5Q3WInwc RUBY ON RAILS入门经典 http://downlo ...
- C#: 数据绑定
数据绑定是分离UI和后端主逻辑程序的一种好的办法.这里总结下TextBox, Label, ComboBox, ListBox, DataGridView的数据绑定 数据绑定都是通过DB来和UI控件的 ...
- C#: enum
C#的枚举类型跟C++差不多,一般我们将enum设为单个状态,比如enum color_t { RED, BLACK, GREEN}, 只能选择一个 而有的时候枚举可以作为位运算来进行与或运算,比如C ...
- Android设计模式---观察者模式小demo(一)
1,今天刚好看到了设计模式这一块来,而观察者模式是我一直想总结的,先来看看观察者模式的简单的定义吧 "当一个对象改变时,他的所有依赖者都会受到通知,并自动更新." 一般我们项目中就 ...
- paper 49:论文退稿?审稿人帮你总结了22个能避免的常见问题
很多投稿出去的文章都是可上可下的.往往退稿的时候,审稿人提了一堆意见,说退稿.但是大家想过没有?如果能事先预测到这些意见,或者请懂行的人事先看过文章预测出意见,然后根据这些意见修改好了再投出去,说不定 ...
- paper 9:SVM番外篇:支持向量机系列六:Duality —— 关于 dual 问题推导的一些补充理论。
在之前关于 support vector 的推导中,我们提到了 dual ,这里再来补充一点相关的知识.这套理论不仅适用于 SVM 的优化问题,而是对于所有带约束的优化问题都适用的,是优化理论中的一个 ...
- js 默认选中select 选项
<select id="HDname" style="width: 150px;"><option value="0"&g ...
- Openstack的nova-network的vlan模式扩展2
接上一篇,上一篇我们使用的是nova-manage命令来创建的网络,这里就有一些知识需要了解 遇到的问题 控制节点的前面的BUG已经按官方解决BUG方式解决了,但是在开发dashboard,使用nov ...
- java hashMap缓存简单实现
直接上代码,干货: import java.util.HashMap; import java.util.Map; /** * map缓存 * @author ming * * @param < ...