public void createExportExcel(Object obj,List list,List<ExportManager> exportList,String sheetName,
String objectFlag, HttpServletResponse response) throws ParameterErrorException {
HSSFWorkbook workbook = null;
try {
workbook = new HSSFWorkbook();//创建工作薄
HSSFSheet sheet = workbook.createSheet();
workbook.setSheetName(0, sheetName );
HSSFFont font = workbook.createFont();
font.setColor(HSSFFont.COLOR_RED);
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
HSSFCellStyle cellStyle = workbook.createCellStyle();//创建格式
cellStyle.setFont(font);
HSSFRow row = sheet.createRow((short) 0); //第一行 表头
for(short i = 0;i < exportList.size();i++){
HSSFCell cell = row.createCell((short) i); //创建第1行单元格
cell.setCellValue(exportList.get(i).getDisplayName());
cell.setCellStyle(cellStyle);
}
//第二行开始是数据
List<List<Object>> allContentList = getAllContentList(obj,list, exportList,objectFlag);
for(int i=1;i<allContentList.size()+1;i++){
HSSFRow rowdata = sheet.createRow((short) i);
for (int j = 0; j < exportList.size(); j++) {
HSSFCell celldata = rowdata.createCell((short) j); // 在上面行索引0的位置创建单元格
celldata.setCellType(HSSFCell.CELL_TYPE_STRING); // 定义单元格为字符串类型
celldata.setCellValue(allContentList.get(i-1).get(j)+ ""); // 在单元格中输入一些内容
}
}
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss");
String fullDateStr = simpleDateFormat.format(new Date());
response.setContentType("application/vnd.ms-excel;charset=utf-8");
// 表示以附件的形式把文件发送到客户端
response.setHeader("Content-Disposition", "attachment;filename="
+ new String((sheetName+fullDateStr+".xls").getBytes(), "ISO8859-1"));
// 通过response的输出流把工作薄的流发送浏览器形成文件
OutputStream os = response.getOutputStream();
workbook.write(os);
os.flush();
} catch (Exception e) {
throw new ParameterErrorException("导出excel失败,原因:"+e.getMessage());
}
}
/**
*
* @throws ParameterErrorException
* @Method_Name getAllContentList
* @Description 拼装所有的导出内容
* @@param list
* @@param tableHeaderArray
* @Return List<List<String>>
* @Author zhuangjinlei
* @CreateDate 2010-4-1
* @LastUpdateDate 2010-4-1,Administrator
*/
public List<List<Object>> getAllContentList(Object obj,List<Object> list,List<ExportManager> exportList,String objectFlag) throws ParameterErrorException{
List<List<Object>> allContentList = new ArrayList<List<Object>>();
Map<String, Object> map = null;
if (objectFlag.equals("dayYield")) {
for (int i = 0; i < list.size(); i++) {
map = ServiceSearchTemplate.getInstance().getDayYieldSearch((YieldManager)list.get(i));
allContentList.add(getSingleRowContentListCommPart(map, exportList));
}
}
return allContentList;
}
/**
* 组装单行导出记录
*/
public List<Object> getSingleRowContentListCommPart(Map<String, Object> map,List<ExportManager> exportList){
List<Object> singleRowContentList = new ArrayList<Object>();
for (int j = 0; j < exportList.size(); j++) {
singleRowContentList.add(map.get(exportList.get(j).getHeader().trim().toUpperCase()));
}
return singleRowContentList;
}
分享到:
相关推荐
这个项目"Java Struts2+poi插件 实现导出Excel"就是结合这两个工具,为用户提供一个功能,能够将数据导出到Excel格式的文件中。 首先,让我们详细了解一下Struts2。Struts2的核心是Action,它负责接收请求、处理...
通过深入研究API文档,你可以实现复杂的Excel报表功能。 10. **源码分析** 博文链接中的示例代码可能展示了如何将这些概念应用到实际项目中,包括创建工作簿、工作表,插入数据,设置样式,以及读取和保存文件。...
4. **导出Excel**:最后,`jxls-poi`会生成一个新的Excel文件,其中包含了从JSON数据填充后的内容。你可以选择保存到本地或者直接通过HTTP响应发送给用户下载。 具体代码示例可能如下: ```java import org.jxls....
例如,在开发过程中,开发者可能需要频繁地读取或写入Excel文件,这时就可以利用POI插件来实现更高效的文件处理功能。常见的POI插件可以实现以下功能: - **快速读取Excel文件**:支持.xls和.xlsx两种格式。 - **...
在IT行业中,数据的导入与导出是常见的数据处理任务,尤其在数据分析、报表生成以及系统集成等场景中。Excel作为流行的电子表格工具,经常需要与数据库进行交互,以实现数据的交换。在这个主题中,我们将深入探讨...
jxl是一个韩国人写的java操作excel的工具, 在开源世界中,有两套比较有影响的API可供使用,一个是POI,一个是jExcelAPI。其中功能相对POI比较弱一点。但jExcelAPI对中文支持非常好,API是纯Java的, 并不依赖Windows...
导出Excel文件时,使用`FileOutputStream`创建输出流,然后调用工作簿对象的`write(OutputStream out)`方法将内容写入输出流,最后关闭流。 在实际应用中,你可能还需要处理一些复杂的情况,例如合并单元格、设置...
在导入导出Excel的过程中,我们需要考虑以下几点: 1. **性能优化**:利用SXSSF进行数据写入,控制内存使用,避免内存溢出。 2. **批处理**:将数据分批写入,减少单次操作的数据量。 3. **错误处理**:对可能出现...
总结来说,导出Excel技术是提升数据处理效率的关键手段,通过Apache POI和EasyExcel等工具,我们可以有效地从各种数据源导入数据,创建和管理Excel文件,同时实现数据的快速分析和呈现。在实际工作中,掌握这些技术...
这个示例源码"XML文件导出Excel(xmlToExcel)示例源码"提供了一种方法,将XML数据转换为可编辑和可视化的Excel格式。下面将详细解释这一过程涉及的关键知识点。 1. **XML(Extensible Markup Language)**:XML是一...
EasyPOI通常用于快速生成报表,处理大批量数据,如批量生成Excel报表,或者从Excel中读取大量数据到数据库。 4. **EasyPOI的优势**:EasyPOI通过模板方式,减少了代码量,提高了开发效率。只需提供一个Excel模板,...
在本项目中,POI主要用于处理Excel报表的导入和导出功能,这在数据分析、数据处理和业务报告中具有广泛的应用。 【描述】:Java项目中的报表功能是至关重要的,POI库提供了方便的方式来实现这一目标。POI不仅支持...
例如,我们可以利用POI来批量生成报表,或者从用户填写的数据中自动导出Excel文件。 接着,我们讨论"分页jar包pagehelper"。PageHelper是MyBatis的优秀分页插件,它实现了通用的分页功能,简化了在开发过程中对数据...
在JFinal中导出Excel,我们可以借助Apache POI库,这是一个强大的API,专门用于读写Microsoft Office格式的文件,包括Excel。 1. **环境准备** 在使用JFinal和Apache POI之前,需要在项目中引入相应的依赖。如果你...
在现代企业级应用开发中,数据导出是一项常见的需求,特别是在数据报表处理方面。本文将详细介绍如何使用 C# 实现将数据批量导出到 Excel 文件中的多个 Sheet 页。 #### 一、背景介绍 在业务场景中,我们经常需要将...
本资源包"报表技术-POI导出PDF(含资料、代码、讲义)"显然是一个关于如何利用Apache POI将Excel数据转换为PDF格式的教程或课程资料,这对于需要跨平台分享或者打印报告的企业来说非常实用。 Apache POI提供了HSSF和...
在IT行业中,处理Excel文件是一项常见的任务,尤其是在数据分析、报表生成和数据导入导出等场景。"NPIO操作excel导出"这个主题涉及到一个强大的开源库——NPOI,它允许我们在.NET环境中处理Microsoft Excel文件,而...
总结来说,使用jQuery导出Excel是一种便捷的前端数据导出解决方案,尤其适用于小型到中型的数据量。通过自定义`tableExcel.js`和`grid2xls.js`,可以适应不同的数据结构和需求,实现灵活的报表生成功能。同时,为了...
导出Excel文件则涉及到创建工作簿、工作表、行和单元格,并设置相应的样式。例如,你可以创建一个DataTable并将其转换为Excel文件: ```csharp using NPOI.XSSF.UserModel; using System.Data; // 创建DataTable ...
- **数据导入导出**:将系统中的数据导出为 Excel 文件供用户下载,或将外部 Excel 文件的数据导入系统。 - **报表生成**:基于系统数据自动生成 Excel 报表,便于数据分析。 - **批量数据处理**:利用 Excel 文件...