`
terry0501
  • 浏览: 313789 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java导出Excel

 
阅读更多
写道
private void exportSelectSonProject(HttpServletRequest request, 
HttpServletResponse response) throws Exception { 
DoradoContext ctx = DoradoContext.getContext(); 
Map map = new HashMap<String, String>(); 

String flowProjectYear = toString(ctx.getParameter("flowProjectYear")); 
String flowStateId = toString(ctx.getParameter("flowStateId")); 
String flowProjectName = toString(ctx.getParameter("flowProjectName")); 
String flowProjectAcceptid = toString(ctx.getParameter("flowProjectAcceptid")); 
String flowProjectIndex = toString(ctx.getParameter("flowProjectIndex")); 
String flowProjectSn = toString(ctx.getParameter("flowProjectSn")); 
String sysOrgId = toString(ctx.getParameter("sysOrgId")); 
String flowProjectTypeid = toString(ctx.getParameter("flowProjectTypeid")); 
String flowProjectKindid = toString(ctx.getParameter("flowProjectKindid")); 
String flowProjectSequence = toString(ctx.getParameter("flowProjectSequence")); 
String flowProjectClassid = toString(ctx.getParameter("flowProjectClassid")); 
String startTime = toString(ctx.getParameter("startTime")); 
String endTime = toString(ctx.getParameter("endTime")); 

map.put("flowProjectYear", flowProjectYear); 
map.put("flowStateId", flowStateId); 
map.put("flowProjectName", flowProjectName); 
map.put("flowProjectAcceptid", flowProjectAcceptid); 
map.put("flowProjectIndex", flowProjectIndex); 
map.put("flowProjectSn", flowProjectSn); 
map.put("sysOrgId", sysOrgId); 
map.put("flowProjectTypeid", flowProjectTypeid); 
map.put("flowProjectKindid", flowProjectKindid); 
map.put("flowProjectSequence", flowProjectSequence); 
map.put("flowProjectClassid", flowProjectClassid); 
map.put("startTime", startTime); 
map.put("endTime", endTime); 

String reportName = "项目查询-IT项目预算汇总报表" + System.currentTimeMillis(); 
String sheetName = "IT项目预算汇总报表"; 
String fileName = reportName + ".xls";// 文件名 
response.setContentType("application/x-msdownload"); 
response.setHeader("Content-Disposition", "attachment; filename=" 
+ URLEncoder.encode(fileName, "UTF-8")); 
OutputStream os = response.getOutputStream();// 输出流 
CreativeExcelExport excel = new CreativeExcelExport(); // HSSFExcel对象 
String[] columnName = new String[] { "项目状态", "项目名称", "项目索引", "主办部门", "项目归属", 
"项目类型", "项目性质", "项目年度"}; 
List dataList = new ArrayList(); 
NewFlowProjectListAction act = (NewFlowProjectListAction) SpringBeanFactory 
.getBean("flowprojectAction_new"); 
FlowProjectSvc svc = (FlowProjectSvc) SpringBeanFactory 
.getBean("flowprojectSvc_new"); 
act.setFlowProjectSvc(svc); 
FlowProjectMgr mgr = (FlowProjectMgr) SpringBeanFactory 
.getBean("flowprojectMgr_new"); 
svc.setFlowProjectMgr(mgr); 
FlowProjectDao dao = (FlowProjectDao) SpringBeanFactory 
.getBean("flowprojectDao_new"); 
mgr.setFlowProjectDao(dao); 
dataList = svc.getSelectFlowProjectBaseInfos(map); 
excel.projectInfoDataToExcel(reportName, sheetName, os, dataList, columnName); 
} 



/** 
* 项目统计项目信息 
* 外部调用导入合并Excel接口的方法 
* 
* @param reportName 
* 报告标题 
* @param sheetName 
* 页名称 
* @param os 
* 输出流 
* @param data 
* 数据 
* @throws IOException 
* 
*/ 
@SuppressWarnings("unchecked") 
public void projectInfoDataToExcel(String reportName, String sheetName, 
OutputStream os, List data, String[] columnName) throws IOException { 
Sheet sheet = this.getHSSFSheet(sheetName); 
this.writeTitle(sheet, reportName, columnName.length); 
this.writeColumnName(sheet, columnName); 
exportProjectInfoData(sheet, data); 
writeResponse(os); 
} 



/** 
* 写文件标题 
* 
* @param sheet 
* @param titleName 
* 
*/ 
private void writeTitle(Sheet sheet, String titleName, int columnNum) { 
Row row = sheet.createRow((short) 0); 
// 设定标题位置 
CellStyle style = this.getWorkBook().createCellStyle(); 
style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 水平居中 
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); // 垂直居中 

style.setBorderBottom(HSSFCellStyle.BORDER_THIN); 
style.setBorderLeft(HSSFCellStyle.BORDER_THIN); 
style.setBorderRight(HSSFCellStyle.BORDER_THIN); 
style.setBorderRight(HSSFCellStyle.BORDER_THIN); 
style.setWrapText(true); 

// 设置标题字体 
Font font = this.getWorkBook().createFont(); 
font.setFontHeightInPoints((short) 10); // 字体大小 
font.setFontName("Arial"); // 什么字体 
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); // 字体加粗 
style.setFont(font); 
// Cell cell = null; 
// for (int i = 0; i < columnNum; i++) { 
// cell = row.createCell(i); 
// cell.setCellStyle(style); 
// if (i == 1 || i == 8 || i == 12 || i == 11 || i >= 14) { 
// 
// sheet.setColumnWidth(i, 10000); 
// } 
// if (i == 0 || i == 2 || (i >= 4 && i <= 7) || i == 9 || i == 13) { 
// sheet.setColumnWidth(i, 4000); 
// } else { 
// sheet.setColumnWidth(i, 2500); 
// } 
// } 
// cell.setCellValue(titleName); 
// this.MergeCell(sheet, 0, 0, 0, columnNum - 1); 

} 


/** 
* 写列名称 
* 
* @param sheet 
* @param titleName 
* 
*/ 
private void writeColumnName(Sheet sheet, String[] columnName) { 
Row row = sheet.createRow((short) 0); 
// 设定列位置 
CellStyle colNameStyle = this.getWorkBook().createCellStyle(); 
colNameStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 水平居中 
colNameStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); // 垂直居中 

colNameStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); 
colNameStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN); 
colNameStyle.setBorderRight(HSSFCellStyle.BORDER_THIN); 
colNameStyle.setBorderTop(HSSFCellStyle.BORDER_THIN); 

// 设置列字体 
Font font = this.getWorkBook().createFont(); 
font.setFontHeightInPoints((short) 14); // 字体大小 
font.setFontName("Arial"); // 什么字体 
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); // 字体加粗 
colNameStyle.setFont(font); 
for (int i = 0; i < columnName.length; i++) { 
Cell cell = row.createCell(i); 
cell.setCellValue(columnName[i]); 
cell.setCellStyle(colNameStyle); 
} 


} 
/** 
* 
* 负责将数据输出到Excel逻辑处理(单个报告) 
* @param sheet 
* @param dataList 
*/ 
@SuppressWarnings("unchecked") 
private void exportProjectInfoData(Sheet sheet, List dataList) { 
if (dataList != null && dataList.size() > 0) { 
for (int i = 0; i < dataList.size(); i++) { 
FlowProjectBaseinfoVO data = (FlowProjectBaseinfoVO) dataList 
.get(i); 
int curRow = i + 1; 
Row row = sheet.createRow((short) curRow); 
row.setHeight((short) 600); 

// 设定数据样式 
CellStyle style = this.getWorkBook().createCellStyle(); 
style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 水平居中 
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); // 垂直居中 

style.setBorderBottom(HSSFCellStyle.BORDER_THIN); 
style.setBorderLeft(HSSFCellStyle.BORDER_THIN); 
style.setBorderRight(HSSFCellStyle.BORDER_THIN); 
style.setBorderTop(HSSFCellStyle.BORDER_THIN); 
style.setWrapText(true); 

Cell curCell0 = row.createCell(0); 
if (data.getFlowProjectSn()!= null) { 
curCell0.setCellValue(data.getFlowProjectSn()); 
} 
curCell0.setCellStyle(style); 
sheet.setColumnWidth(0, 8000); 

Cell curCell1 = row.createCell(1); 
if (data.getFlowProjectName() != null) { 
curCell1.setCellValue(data.getFlowProjectName()); 
} 
curCell1.setCellStyle(style); 
sheet.setColumnWidth(1, 4000); 

Cell curCell2 = row.createCell(2); 
if (data.getFlowProjectTypeName()!= null) { 
curCell2.setCellValue(data.getFlowProjectTypeName()); 
} 
curCell2.setCellStyle(style); 
sheet.setColumnWidth(2, 4000); 

Cell curCell3 = row.createCell(3); 
if (data.getFlowProjectKindName() != null) { 
curCell3.setCellValue(data.getFlowProjectKindName()); 
} 
curCell3.setCellStyle(style); 
sheet.setColumnWidth(3, 4000); 

Cell curCell4 = row.createCell(4); 
if (data.getFlowProjectClassName() != null) { 
curCell4.setCellValue(data.getFlowProjectClassName()); 
} 
curCell4.setCellStyle(style); 
sheet.setColumnWidth(4, 4000); 
Cell curCell5= row.createCell(5); 
if (data.getFlowProjectYear() != null) { 
curCell5.setCellValue(data.getFlowProjectYear()); 
} 
curCell5.setCellStyle(style); 
sheet.setColumnWidth(5, 4000); 
} 
} 
Row row = sheet.getRow(0); 
for(int i = 0; i < 16; i++){ 
if(i==0){ 
Cell cell = row.getCell(i); 
if(null != cell){ 
String str = cell.getStringCellValue(); 
int length = str.getBytes().length; 
sheet.setColumnWidth((short)i,(short)(length*600)); 
} 
}else{ 
Cell cell = row.getCell(i); 
if(null != cell){ 
String str = cell.getStringCellValue(); 
int length = str.getBytes().length; 
sheet.setColumnWidth((short)i,(short)(length*400)); 
} 
} 

} 
}
 

 

分享到:
评论

相关推荐

    java导出excel POI jar包

    Java导出Excel是Java开发中常见的需求,尤其是在数据处理和报表生成方面。Apache POI库是Java领域中广泛使用的工具,它允许开发者读写Microsoft Office格式的文件,包括Excel(.xlsx和.xls)。本篇文章将深入讲解...

    java导出excel超过65536条记录出错

    java导出excel超过65536条记录出错 java导出excel超过65536条记录出错 java导出excel超过65536条记录出错 java导出excel超过65536条记录出错

    java导出excel复合表头简单实例

    本资源提供的"java导出excel复合表头简单实例"是针对Java开发者的一个实用教程,特别是对于那些刚开始接触Java Excel导出功能的新手。这个实例将帮助你理解如何在Excel中创建并设置复杂的表头结构,使得数据的呈现...

    java导出excel复杂表头

    本示例涉及的主题是“java导出excel复杂表头”,这意味着我们要处理的不是简单的单级表头,而是包含多级或者多层次结构的表头。在描述中提到这是一个可以直接运行的Java工程,但需要进一步改造为Web下载服务。 首先...

    java导出excel(写入到excel后再下载)示例

    Java导出Excel是Java开发中常见的需求,尤其在数据分析、报表生成或数据交换场景中。本示例资源提供了一个RAR压缩包,包含了实现这一功能的源代码,主要讲解了两个核心部分:一是如何将数据写入Excel文件并保存在...

    java导出Excel 时候 相同行合并

    java导出Excel 时候 相同行合并(可合并多列); 已测试通过;

    java导出excel及POI3.10jar包

    Java导出Excel是Java开发中常见的一项任务,特别是在数据分析、报表生成或数据交换等领域。Apache POI是一个流行的开源库,允许Java程序读取和写入Microsoft Office格式的文件,包括Excel(.xls和.xlsx)。在本场景...

    java导出excel的相关jar

    压缩包中的文件"java导出excel"很可能包含了使用这两种库的示例代码或教程资源,你可以通过解压并学习这些文件来深入理解如何在Java中实现数据到Excel的导出。记得在实际使用时,要根据项目需求选择合适的技术,并...

    Java 导出Excel.zip

    "Java 导出Excel.zip"这个压缩包文件提供了一个Java实现的解决方案,允许开发者以全泛型的方式方便地导出数据到Excel文件,而且支持动态创建不同数量的sheet页面,增强了灵活性。 1. **Java与Excel交互**:Java中...

    java导出excel树结构工具类

    该工具类实现java导出树形结构的方法,并未采用excel分组功能实现,而是根据树节点显示层级设置excel样式。针对easyUi,treeGrid开发的导出excel功能。方法简便实用、性强、通俗易懂。项目中亲测,no problem。

    java导出excel 在web项目

    Java导出Excel在Web项目中的应用是一个常见的需求,特别是在企业级开发中,为了方便数据的存储、分析和传输,往往需要将数据库中的数据导出为Excel格式。下面将详细介绍这个主题,包括相关技术和实现步骤。 1. **...

    java 导出excel例子,使用poi

    java导出excel例子,使用的是poi,可以分sheet导出,可以导出txt

    java 导出excel,带图片的Excel导出

    在Java编程中,导出Excel是一项常见的任务,特别是在数据分析、报表生成或数据交换等领域。而带图片的Excel导出则增加了复杂性,因为涉及到二进制数据的处理和Excel特定格式的支持。以下是一些关于如何在Java中实现...

    java导出Excel表格

    在压缩包中的"java导出Excel"文件可能是项目的源代码,包含了实现上述功能的具体Java类和方法。分析这些源码可以帮助我们更深入地理解如何在实际项目中应用这些知识点。 总结来说,这个项目展示了如何在Java环境中...

    java导出excel并生成折线图.java

    资源描述:一个使用java做的导出数据,并且可以在excel表生成折线图的工具类,使用简单操作方便。

    Java导出excel

    ### Java导出Excel知识点 #### 一、导出Excel的核心技术背景 在现代软件开发过程中,数据导出是一项常见的需求,尤其是将数据从数据库或内存中的数据结构导出到Excel文件,这为用户提供了便捷的数据查看与分析方式...

    java导出excel的jar包及例子代码

    总之,Java导出Excel涉及到的主要知识点包括:Apache POI库的使用,Workbook、Sheet、Row和Cell对象的创建和操作,以及数据写入和文件输出。希望这个示例能帮助你理解并开始在自己的项目中实现Excel导出功能。

    java导出excel

    以下是一些关于“java导出excel”的核心知识点,以及如何实现这一功能的详细解释。 1. **Apache POI库**: Apache POI是一个流行的开源库,专门用于读写Microsoft Office格式的文件,包括Excel。使用POI,开发者...

    Java 导出excel工具类(封装,带导出格式和类型转换)

    * 导出excel(利用反射机制) * String[] title = {"订单号","商品名称","商品价格","创建时间"}; * String[] field = {"orderNum","productName","productPrice","createTime"}; * ExportTools.export("sellJoin...

    java 导出 excel

    在Java编程中,导出...总之,Java导出Excel涉及到的内容广泛,从选择合适的库到处理各种复杂需求,都需要开发者具备扎实的编程基础和对Excel文件格式的理解。通过不断实践和学习,你可以轻松应对各种Excel处理任务。

Global site tag (gtag.js) - Google Analytics