- 浏览: 64780 次
文章分类
最新评论
-
小色帝:
我是天才是打发
Jquery实现的Tabs页 -
小色帝:
小色帝 写道1111而温热
Jquery实现的Tabs页 -
小色帝:
1111而温热
Jquery实现的Tabs页
@RequestMapping(value = "/getExportExcel", method = RequestMethod.GET)
public void test_001_getRequestId(ModelMap model,HttpServletRequest request, HttpServletResponse response)
throws Exception {
ServletOutputStream out = null;
// InputStream in = ClassLoader.getSystemResourceAsStream("template/report.xlsx");
// File f = new File("/template/report.xlsx");
// 设置response参数,可以打开下载页面
response.reset();
getClass().getClassLoader().getResource("/").getPath();
response.setContentType("application/msexcel;charset=utf-8");
XSSFWorkbook wb = new XSSFWorkbook(request.getSession().getServletContext()
.getResourceAsStream("/template/report.xlsx"));
try {
XSSFSheet sheet = wb.getSheetAt(0);
String[] handers = { "报表名称", "报表描述", "BI源类型", "BI数据源", "报表所属目录",
"报表路径", "所属模块", "访问方式", "报表类型", "用户类(多个以逗号隔开)" };
String[] downRows = { "2", "3", "7", "8" };
// if (!storageRootPath.equalsIgnoreCase(System
// .getProperty("java.io.tmpdir"))) {
// System.setProperty("java.io.tmpdir", storageRootPath);
// }
// log.info("java.io.tmpdir" + System.getProperty("java.io.tmpdir"));
// 表头样式
XSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
// 字体样式
XSSFFont fontStyle = wb.createFont();
fontStyle.setFontName("微软雅黑");
fontStyle.setFontHeightInPoints((short) 12);
fontStyle.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
style.setFont(fontStyle);
XSSFRow rowFirst = sheet.createRow(0);// 第一个sheet的第一行为标题
// 写标题
for (int i = 0; i < handers.length; i++) {
XSSFCell cell = rowFirst.createCell(i); // 获取第一行的每个单元格
sheet.setColumnWidth(i, 8000); // 设置每列的列宽
cell.setCellStyle(style); // 加样式
cell.setCellValue(handers[i]); // 往单元格里写数据
}
List<String[]> downData = new ArrayList<String[]>();
if ("true".equals(request.getParameter("mark"))) {
// 填充bi数据
List<SourceTypeDTO> bitypelist = manageBIReprotService
.querySourceType();
List<String> srtlist = new ArrayList<String>();
List<String> biTypeList = new ArrayList<String>();
for (SourceTypeDTO dto : bitypelist) {
if (dto.getName().indexOf("Pentaho") > -1) {
String biTypeid = dto.getId();
srtlist.add(dto.getName());
biTypeList.add(biTypeid);
}
if (dto.getName().indexOf("IBM Cognos") > -1) {
String biTypeid = dto.getId();
srtlist.add(dto.getName());
biTypeList.add(biTypeid);
}
}
String [] listarry=new String[srtlist.size()];
downData.add(srtlist.toArray(listarry));
// List<BIReportDTO> bilist=
// manageBIReprotService.queryAllBiInfoList();
Map<String, List<String>> map = new HashMap<String, List<String>>();
map.put("typeListId", biTypeList);
List<BIReportDTO> bilist = manageBIReprotService
.queryBiListByListTypeId(map);
// 释放
List<String> biNameList = new ArrayList<String>();
for (BIReportDTO bidto : bilist) {
biNameList.add(bidto.getBiName());
}
String [] biNameArray = new String[biNameList.size()];
downData.add(biNameList.toArray(biNameArray));
// 添加访问方式
String[] accType = { "SSO", "API" };
downData.add(accType);
// 报表类型
List<String> reportTypeNameList = new ArrayList<String>();
List<ReportType> reporttypelist = memoryReportService
.getReportTypeNameList();
for (ReportType type : reporttypelist) {
reportTypeNameList.add(type.getName());
}
String [] reportNameArray = new String[reportTypeNameList.size()];
downData.add(reportTypeNameList.toArray(reportNameArray));
}else{
String[] str1 = new String[]{ "IBM COGNOS8.4", "IBM COGNOS10.4", "PENTAHO_SAIKU5" };
String[] str2 = new String[]{ "COGNOS 10 TEST","MIS-IT系统BI源", "BI(邮件C8)", "MIS-IT系统BI源(C10)", "Peter+Winter", " MAS-GROUP-Pentaho5 saiku","ELIS-DAP-Pentaho5 saiku" };
String[] str3 = new String[]{ "SSO", "API"};
List<String> reportTypeNameList = new ArrayList<String>();
List<ReportType> reporttypelist = memoryReportService
.getReportTypeNameList();
for (ReportType type : reporttypelist) {
reportTypeNameList.add(type.getName());
}
String [] reportNameArray = new String[reportTypeNameList.size()];
downData.add(str1);
downData.add(str2);
downData.add(str3);
downData.add(reportTypeNameList.toArray(reportNameArray));
}
for (int r = 0; r < downRows.length; r++) {
String[] dlData = downData.get(r);// 获取下拉对象
int rownum = Integer.parseInt(downRows[r]);
try {
XSSFDataValidationHelper dvHelper = new XSSFDataValidationHelper(sheet);
XSSFDataValidationConstraint dvConstraint = (XSSFDataValidationConstraint) dvHelper
.createExplicitListConstraint(dlData);
CellRangeAddressList addressList = null;
XSSFDataValidation validation = null;
addressList = new CellRangeAddressList(1, 500, rownum, rownum);
validation = (XSSFDataValidation) dvHelper
.createValidation(dvConstraint, addressList);
// 07默认setSuppressDropDownArrow(true);
if ("true".equals(request.getParameter("mark2"))) {
validation.setSuppressDropDownArrow(true);
validation.setShowErrorBox(true);
}
sheet.addValidationData(validation);
} catch (Exception e) {
log.info("添加数据验证错误 : " + e.getMessage());
throw e;
}
}
response.setCharacterEncoding("UTF-8");
response.setContentType("application/msexcel");
//2.设置文件头:最后一个参数是设置下载文件名(假如我们叫a.pdf)
response.setHeader("Content-Disposition", "attachment;fileName="+java.net.URLEncoder.encode("report.xlsx", "UTF-8"));
//通过文件路径获得File对象(假如此路径中有一个download.pdf文件)
//3.通过response获取ServletOutputStream对象(out)
out = response.getOutputStream();
//
wb.write(out);
out.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != out) {
out.close();
}
}
}
public void test_001_getRequestId(ModelMap model,HttpServletRequest request, HttpServletResponse response)
throws Exception {
ServletOutputStream out = null;
// InputStream in = ClassLoader.getSystemResourceAsStream("template/report.xlsx");
// File f = new File("/template/report.xlsx");
// 设置response参数,可以打开下载页面
response.reset();
getClass().getClassLoader().getResource("/").getPath();
response.setContentType("application/msexcel;charset=utf-8");
XSSFWorkbook wb = new XSSFWorkbook(request.getSession().getServletContext()
.getResourceAsStream("/template/report.xlsx"));
try {
XSSFSheet sheet = wb.getSheetAt(0);
String[] handers = { "报表名称", "报表描述", "BI源类型", "BI数据源", "报表所属目录",
"报表路径", "所属模块", "访问方式", "报表类型", "用户类(多个以逗号隔开)" };
String[] downRows = { "2", "3", "7", "8" };
// if (!storageRootPath.equalsIgnoreCase(System
// .getProperty("java.io.tmpdir"))) {
// System.setProperty("java.io.tmpdir", storageRootPath);
// }
// log.info("java.io.tmpdir" + System.getProperty("java.io.tmpdir"));
// 表头样式
XSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
// 字体样式
XSSFFont fontStyle = wb.createFont();
fontStyle.setFontName("微软雅黑");
fontStyle.setFontHeightInPoints((short) 12);
fontStyle.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
style.setFont(fontStyle);
XSSFRow rowFirst = sheet.createRow(0);// 第一个sheet的第一行为标题
// 写标题
for (int i = 0; i < handers.length; i++) {
XSSFCell cell = rowFirst.createCell(i); // 获取第一行的每个单元格
sheet.setColumnWidth(i, 8000); // 设置每列的列宽
cell.setCellStyle(style); // 加样式
cell.setCellValue(handers[i]); // 往单元格里写数据
}
List<String[]> downData = new ArrayList<String[]>();
if ("true".equals(request.getParameter("mark"))) {
// 填充bi数据
List<SourceTypeDTO> bitypelist = manageBIReprotService
.querySourceType();
List<String> srtlist = new ArrayList<String>();
List<String> biTypeList = new ArrayList<String>();
for (SourceTypeDTO dto : bitypelist) {
if (dto.getName().indexOf("Pentaho") > -1) {
String biTypeid = dto.getId();
srtlist.add(dto.getName());
biTypeList.add(biTypeid);
}
if (dto.getName().indexOf("IBM Cognos") > -1) {
String biTypeid = dto.getId();
srtlist.add(dto.getName());
biTypeList.add(biTypeid);
}
}
String [] listarry=new String[srtlist.size()];
downData.add(srtlist.toArray(listarry));
// List<BIReportDTO> bilist=
// manageBIReprotService.queryAllBiInfoList();
Map<String, List<String>> map = new HashMap<String, List<String>>();
map.put("typeListId", biTypeList);
List<BIReportDTO> bilist = manageBIReprotService
.queryBiListByListTypeId(map);
// 释放
List<String> biNameList = new ArrayList<String>();
for (BIReportDTO bidto : bilist) {
biNameList.add(bidto.getBiName());
}
String [] biNameArray = new String[biNameList.size()];
downData.add(biNameList.toArray(biNameArray));
// 添加访问方式
String[] accType = { "SSO", "API" };
downData.add(accType);
// 报表类型
List<String> reportTypeNameList = new ArrayList<String>();
List<ReportType> reporttypelist = memoryReportService
.getReportTypeNameList();
for (ReportType type : reporttypelist) {
reportTypeNameList.add(type.getName());
}
String [] reportNameArray = new String[reportTypeNameList.size()];
downData.add(reportTypeNameList.toArray(reportNameArray));
}else{
String[] str1 = new String[]{ "IBM COGNOS8.4", "IBM COGNOS10.4", "PENTAHO_SAIKU5" };
String[] str2 = new String[]{ "COGNOS 10 TEST","MIS-IT系统BI源", "BI(邮件C8)", "MIS-IT系统BI源(C10)", "Peter+Winter", " MAS-GROUP-Pentaho5 saiku","ELIS-DAP-Pentaho5 saiku" };
String[] str3 = new String[]{ "SSO", "API"};
List<String> reportTypeNameList = new ArrayList<String>();
List<ReportType> reporttypelist = memoryReportService
.getReportTypeNameList();
for (ReportType type : reporttypelist) {
reportTypeNameList.add(type.getName());
}
String [] reportNameArray = new String[reportTypeNameList.size()];
downData.add(str1);
downData.add(str2);
downData.add(str3);
downData.add(reportTypeNameList.toArray(reportNameArray));
}
for (int r = 0; r < downRows.length; r++) {
String[] dlData = downData.get(r);// 获取下拉对象
int rownum = Integer.parseInt(downRows[r]);
try {
XSSFDataValidationHelper dvHelper = new XSSFDataValidationHelper(sheet);
XSSFDataValidationConstraint dvConstraint = (XSSFDataValidationConstraint) dvHelper
.createExplicitListConstraint(dlData);
CellRangeAddressList addressList = null;
XSSFDataValidation validation = null;
addressList = new CellRangeAddressList(1, 500, rownum, rownum);
validation = (XSSFDataValidation) dvHelper
.createValidation(dvConstraint, addressList);
// 07默认setSuppressDropDownArrow(true);
if ("true".equals(request.getParameter("mark2"))) {
validation.setSuppressDropDownArrow(true);
validation.setShowErrorBox(true);
}
sheet.addValidationData(validation);
} catch (Exception e) {
log.info("添加数据验证错误 : " + e.getMessage());
throw e;
}
}
response.setCharacterEncoding("UTF-8");
response.setContentType("application/msexcel");
//2.设置文件头:最后一个参数是设置下载文件名(假如我们叫a.pdf)
response.setHeader("Content-Disposition", "attachment;fileName="+java.net.URLEncoder.encode("report.xlsx", "UTF-8"));
//通过文件路径获得File对象(假如此路径中有一个download.pdf文件)
//3.通过response获取ServletOutputStream对象(out)
out = response.getOutputStream();
//
wb.write(out);
out.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != out) {
out.close();
}
}
}
发表评论
-
c3p0代码动态切换数据源
2018-08-06 17:54 1034public class PARPDatasource imp ... -
sql 优化开多个线程跑
2018-07-11 09:54 624select /*+ parallel(8) */ * fr ... -
redis 事物限制频率和获得令牌
2018-07-11 02:50 888package com.dongnaoedu.tony.ser ... -
Redis分布式锁解决抢购问题
2018-07-11 02:39 1281废话不多说,首先分享一个业务场景-抢购。一个典型的高并发问题, ... -
StringWriter 接收异常信息
2018-07-05 18:42 404try { int a=1/0; } catch (E ... -
RedisCacheServiceUtil
2018-06-29 15:06 346package com.paic.icorepnbs.web. ... -
jedis 操作redis
2018-06-26 09:13 334//连接redis ,redis的默认端口是6379 Je ... -
多线程缓存优化思想
2018-06-06 15:33 3281.背景 题库 随机生成N张试卷,每张试卷M个题目,每个题目要 ... -
网络编程之使用HttpClient批量上传文件
2018-05-28 01:12 498网络编程之使用HttpClient批量上传文件(一) 2014 ... -
oracle 正则表达式 替换 ‘’:
2018-05-18 18:04 548select /*+ parallel(8) */ t.na ... -
Java Socket编程
2016-12-28 23:28 306对于Java Socket编程而言,有两个概念,一个是Serv ... -
Java多线程学习(吐血超详细总结)
2016-12-27 17:15 378目录(?)[-] 1.一扩展javalangThread类 2 ... -
JAVA多线程实现的三种方式
2016-12-27 17:16 388Java多线程实现方式主要有三种:继承Thread类、实现Ru ... -
Maven 入门菜鸟教程
2016-12-02 10:02 1139学习maven的使用,看到一篇很实用的入门教程(菜鸟级入门) ... -
Java 读写Properties配置文件
2016-08-22 15:00 366Java 读写Properties配置文件 1.Pro ... -
JAVA前端与后端参数传递方法小结
2016-07-26 10:54 45721,从Action中传值到JSP页面的方法 ①在Actio ... -
苟富贵
2013-02-25 09:43 0额梵蒂冈过v梵蒂冈北方多汇报地方环保 -
Request的getParameter和getAttribute方法的区别
2013-01-22 10:01 606HttpServletRequest.getParameter ... -
Eclipse快捷键小结
2012-12-26 11:26 709Eclipse快捷键小结 Eclipse ... -
JAVA去空格
2012-12-20 16:53 621String ccc=” he l l o , w o r l ...
相关推荐
java 数据库 导出 excel
从java导出到Excel功能,具备非常好的可用性和可扩展性,实用POI写的。附详细实用说明!
java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入java Excel 导出 导入
Domino notes java版导出excel,需要组件poi支持,解决Domino日常数据批量导出需求!
java Excel导出 Excel数据处理
轻松让java 将数据导出到Excel中,java让开发更简单。
使用apach poi 导出Excel,可直接在项目中使用使用apach poi 导出Excel,可直接在项目中使用使用apach poi 导出Excel,可直接在项目中使用
该工具类实现java导出树形结构的方法,并未采用excel分组功能实现,而是根据树节点显示层级设置excel样式。针对easyUi,treeGrid开发的导出excel功能。方法简便实用、性强、通俗易懂。项目中亲测,no problem。
java使用POI导出 Excel+图片工具类 ,里面含有poi jar包,只调用接口即可直接保存Excel。使用的时候需先把数据封装,具体包装需根据实际导出数据进行处理。文件demo中只提供包装格式。
java实现导出excel功能,可稍作修改移值到网页上进行数据导出
java导出内容以及图片到execl中,由于客户的骚需求,不得不进行一些不情愿的开发。文档仅供思路参考。谢谢
java中将数据和图片导出到Excel文件
除了平时简单的数据导出需求外,我们也经常...源码案例提供了模板,单个数据写入与列表数据写入以及文件导出的代码,详细的说明请参照个人博客“Excel模板导出”,源码可以让读者更加详细的了解Excel导出的过程和原理。
java导出复杂Excel内容数据动态循环
需要使用JAVA 做EXCEL导出的同学,有问题尽管私信
概述:Java poi导入导出EXCEL工具类(兼容各版本) 一、功能说明 允许同时导入或导出多个sheet,同一sheet可同时存在多个数据块,按数据块划分处理数据。 二、配置文件示例及详细说明 1、导入xml配置示例如下(见...
自定义的一个excel文件导入导出类,支持Excel2003到2010的格式。里面也有简单的配置文件的创建。
主要介绍java poi如何导出图片到excel,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
JAVA POI导出EXCEL代码
java导出成Excel 本人亲自测试过