`

excel导出动态数据列表。。。

 
阅读更多
/**
* 导出台账
*/
public ActionForward exportQues(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {

String orgId = request.getParameter("id_org");
String checkId = request.getParameter("checkId");
QueryForm qf = new QueryForm(request, org.apache.commons.collections.map.ListOrderedMap.class);
PageInfo page = new PageInfo(request);
DynaBean bean = new LazyDynaBean();
bean.set("checkId", checkId);
bean.set("orgId", orgId);
List list = inspectDuty1Service.list(qf, page, bean);
System.out.println("" + list.toString());
//开始导出excel....
response.reset();// 可以加也可以不加
response.setContentType("application/x-download");
String filedisplay = "排班日期表.xls";
filedisplay = URLEncoder.encode(filedisplay, "UTF-8");
response.addHeader("Content-Disposition", "attachment;filename=" + filedisplay);
List lists = inspectDuty1Service.queryAllSiteNo(orgId);

List<String> biaoLie = new ArrayList<String>(); //列数据
biaoLie.add("DUTY_DATE");
List<String> biaoTou = new ArrayList<String>(); //表头
biaoTou.add("排班日期");
for (int i = 0; i < lists.size(); i++) {
Map m = (Map) lists.get(i);
String siteNo = (String) m.get("SITE_NO");
String siteName = (String) m.get("SITE_NAME");
biaoLie.add("A" + siteNo);
biaoTou.add(siteName);
}

String[] t = new String[biaoLie.size()];
String[] fileds = biaoLie.toArray(t);

String[] s = new String[biaoTou.size()];
String[] title = biaoTou.toArray(s);
//String[] title = {"排班日期","台席1","台席2","台席3","台席4"};
//String[] fileds = {"DUTY_DATE","A0001","A0002","A0002","A0004"};

ExcelExportService.exportExcel(list, title, fileds, response.getOutputStream());

return null;
}


public static boolean exportExcel(List<Map> values, String[] title, String[] fields, OutputStream out) {
try {
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sht = wb.createSheet();
HSSFCellStyle style = wb.createCellStyle();
HSSFFont font = wb.createFont();
style.setFillForegroundColor((short) Color.GRAY.getRGB());
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
style.setFont(font);
int rownum = 0;
if(title != null && title.length > 0) {
HSSFRow row = sht.createRow(rownum);
rownum++;
short column = 0;
for(int i = 0; i < title.length; ++i) {
HSSFCell cell = row.createCell(column, HSSFCell.CELL_TYPE_STRING);
cell.setCellValue(new HSSFRichTextString(title[i]));
cell.setCellStyle(style);
column++;
}
}
if(values != null) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
for(int i = 0; i < values.size(); ++i) {
HSSFRow row = sht.createRow(rownum);
Map map = (Map)values.get(i);
rownum ++;
short column = 0;
for(int j = 0; j < fields.length; ++j) {
HSSFCell cell = row.createCell(column);
Object val = map.get(fields[j]);
/*
if (fields[j].equals("RISK_LINK") && map.get(fields[j])!=null && !"".equals(map.get(fields[j]))) { // BUS_TYPE汉字
Long riskLink = Long.parseLong(map.get(fields[j]).toString());
FiriskRiskLink firiskRiskLink = firiskRiskLinkService.findById(riskLink);
val = firiskRiskLink.getLinkName();
} else {
val = map.get(fields[j]);
}*/
if(val != null){
if(val instanceof java.util.Date){
String dataStr = DateTool.dateToStr(sdf.parse(val.toString()), "yyyy-MM-dd");
cell.setCellValue(new HSSFRichTextString(dataStr));
}else{
cell.setCellValue(new HSSFRichTextString(val.toString()));
}
}
column++;
}
}
}
wb.write(out);
return true;
} catch (Exception e) {
e.printStackTrace();
} finally{
try{
if(out!=null)out.close();
}catch(Exception e){
}
}
return false;
}




整个excel的帮助类

package com.post.bank.finrisk.util;

import java.awt.Color;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.lang.reflect.Method;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletOutputStream;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import com.ist.commons.util.DateTool;
import com.ist.util.spring.SpringBeanFactory;
import com.post.bank.finrisk.service.FiriskPersonPointService;
import com.post.bank.finrisk.service.FiriskRiskLinkService;
import com.post.bank.finrisk.service.PersonWentryService;
import com.post.bank.finrisk.vo.FiriskRiskLink;
import com.post.bank.finrisk.vo.PersonWentry;



/**
* Import vulnerability scan result excel file
* @author pengxiao
*
*/
public class ExcelExportService {

private static FiriskRiskLinkService firiskRiskLinkService = (FiriskRiskLinkService) SpringBeanFactory.getBean("firiskRiskLinkService");

/**
* 导出Excel
* @param values:导出的instance集合
* @param title:Excel列标题
* @param instance:List的类
* @param fields:导出的对应instance的字段
* @param outPath:输出文件路径
* @return
*/
public static boolean exportExcel(List<?> values, String[] title, Class<?> instance, String[] fields, String outPath) {
try {
FileOutputStream fos = new FileOutputStream(outPath);
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sht = wb.createSheet();
HSSFCellStyle style = wb.createCellStyle();
HSSFFont font = wb.createFont();
style.setFillForegroundColor((short) Color.GRAY.getRGB());
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
style.setFont(font);
int rownum = 0;
if(title != null && title.length > 0) {
HSSFRow row = sht.createRow(rownum);
rownum++;
short column = 0;
for(int i = 0; i < title.length; ++i) {
HSSFCell cell = row.createCell(column, HSSFCell.CELL_TYPE_STRING);
cell.setCellValue(new HSSFRichTextString(title[i]));
cell.setCellStyle(style);
column++;
}
}
if(values != null) {
for(int i = 0; i < values.size(); ++i) {
HSSFRow row = sht.createRow(rownum);
rownum ++;
short column = 0;
for(int j = 0; j < fields.length; ++j) {
HSSFCell cell = row.createCell(column);
if(fields[j].indexOf(",") > -1){
String[] fcomp = fields[j].split(",");
String value = "";
for(String f : fcomp) {
Method method = instance.getMethod(toGetMethod(f), null);
Object val = method.invoke(values.get(i), null);
value += val.toString();
}
cell.setCellValue(new HSSFRichTextString(value));
} else {
Method method = instance.getMethod(toGetMethod(fields[j]), null);
Object val = method.invoke(values.get(i), null);
if(val != null)
cell.setCellValue(new HSSFRichTextString(val.toString()));
}
column++;
}
}
}
wb.write(fos);
fos.close();
return true;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}


/**
* 导出Excel
* @param values:导出的列表集合,里面是Map,一般是直接通过sql查询出的结果集
* @param title:Excel列标题
* @param instance:List的类
* @param fields:导出的对应instance的字段
* @param outPath:输出文件路径
* @return
*/
public static boolean exportExcel(List<Map> values, String[] title, String[] fields, String outPath) {
try {
FileOutputStream fos = new FileOutputStream(outPath);
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sht = wb.createSheet();
HSSFCellStyle style = wb.createCellStyle();
HSSFFont font = wb.createFont();
style.setFillForegroundColor((short) Color.GRAY.getRGB());
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
style.setFont(font);
int rownum = 0;
if(title != null && title.length > 0) {
HSSFRow row = sht.createRow(rownum);
rownum++;
short column = 0;
for(int i = 0; i < title.length; ++i) {
HSSFCell cell = row.createCell(column, HSSFCell.CELL_TYPE_STRING);
cell.setCellValue(new HSSFRichTextString(title[i]));
cell.setCellStyle(style);
column++;
}
}
if(values != null) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
for(int i = 0; i < values.size(); ++i) {
HSSFRow row = sht.createRow(rownum);
Map map = (Map)values.get(i);
rownum ++;
short column = 0;
for(int j = 0; j < fields.length; ++j) {
HSSFCell cell = row.createCell(column);
Object val = map.get(fields[j]);
if(val != null){
if(val instanceof java.util.Date){
String dataStr = DateTool.dateToStr(sdf.parse(val.toString()), "yyyy-MM-dd");
cell.setCellValue(new HSSFRichTextString(dataStr));
}else{
cell.setCellValue(new HSSFRichTextString(val.toString()));
}
}
column++;
}
}
}
wb.write(fos);
fos.close();
return true;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}

public static boolean exportExcel(List<Map> values, String[] title, String[] fields, OutputStream out) {
try {
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sht = wb.createSheet();
HSSFCellStyle style = wb.createCellStyle();
HSSFFont font = wb.createFont();
style.setFillForegroundColor((short) Color.GRAY.getRGB());
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
style.setFont(font);
int rownum = 0;
if(title != null && title.length > 0) {
HSSFRow row = sht.createRow(rownum);
rownum++;
short column = 0;
for(int i = 0; i < title.length; ++i) {
HSSFCell cell = row.createCell(column, HSSFCell.CELL_TYPE_STRING);
cell.setCellValue(new HSSFRichTextString(title[i]));
cell.setCellStyle(style);
column++;
}
}
if(values != null) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
for(int i = 0; i < values.size(); ++i) {
HSSFRow row = sht.createRow(rownum);
Map map = (Map)values.get(i);
rownum ++;
short column = 0;
for(int j = 0; j < fields.length; ++j) {
HSSFCell cell = row.createCell(column);
Object val = map.get(fields[j]);
/*
if (fields[j].equals("RISK_LINK") && map.get(fields[j])!=null && !"".equals(map.get(fields[j]))) { // BUS_TYPE汉字
Long riskLink = Long.parseLong(map.get(fields[j]).toString());
FiriskRiskLink firiskRiskLink = firiskRiskLinkService.findById(riskLink);
val = firiskRiskLink.getLinkName();
} else {
val = map.get(fields[j]);
}*/
if(val != null){
if(val instanceof java.util.Date){
String dataStr = DateTool.dateToStr(sdf.parse(val.toString()), "yyyy-MM-dd");
cell.setCellValue(new HSSFRichTextString(dataStr));
}else{
cell.setCellValue(new HSSFRichTextString(val.toString()));
}
}
column++;
}
}
}
wb.write(out);
return true;
} catch (Exception e) {
e.printStackTrace();
} finally{
try{
if(out!=null)out.close();
}catch(Exception e){
}
}
return false;
}
/**
* 有对象现场检查导出
* @param values:导出的列表集合,里面是Map,一般是直接通过sql查询出的结果集
* @param objTitle:有对象现场检查(对象标题)
* @param title:问题标题
* @param fields:问题标题对应字段
* @param out:输出
* @return
*/
public static boolean exportExcel(List<Map> values,String[] objTitle, String[] title, String[] fields, OutputStream out) {
try {
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sht = wb.createSheet();
HSSFCellStyle style = wb.createCellStyle();
HSSFFont font = wb.createFont();
style.setFillForegroundColor((short) Color.GRAY.getRGB());
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
style.setFont(font);
int rownum = 0;
if(objTitle != null && objTitle.length > 0) {
HSSFRow row = sht.createRow(rownum);
rownum++;
short column = 0;
for(int i = 0; i < objTitle.length; ++i) {
HSSFCell cell = row.createCell(column, HSSFCell.CELL_TYPE_STRING);
cell.setCellValue(new HSSFRichTextString(objTitle[i]));
cell.setCellStyle(style);
column++;
}
}
rownum = 2;
if(title != null && title.length > 0) {
HSSFRow row = sht.createRow(rownum);
rownum++;
short column = 0;
for(int i = 0; i < title.length; ++i) {
HSSFCell cell = row.createCell(column, HSSFCell.CELL_TYPE_STRING);
cell.setCellValue(new HSSFRichTextString(title[i]));
cell.setCellStyle(style);
column++;
}
}
if(values != null) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
for(int i = 0; i < values.size(); ++i) {
HSSFRow row = sht.createRow(rownum);
Map map = (Map)values.get(i);
rownum ++;
short column = 0;
for(int j = 0; j < fields.length; ++j) {
HSSFCell cell = row.createCell(column);
Object val = map.get(fields[j]);
if(val != null){
if(val instanceof java.util.Date){
String dataStr = DateTool.dateToStr(sdf.parse(val.toString()), "yyyy-MM-dd");
cell.setCellValue(new HSSFRichTextString(dataStr));
}else{
cell.setCellValue(new HSSFRichTextString(val.toString()));
}
}
column++;
}
}
}
wb.write(out);
return true;
} catch (Exception e) {
e.printStackTrace();
} finally{
try{
if(out!=null)out.close();
}catch(Exception e){
}
}
return false;
}

private static String toGetMethod(String field) {
String tmp = field.toUpperCase();
return "get"+tmp.charAt(0) + field.substring(1, field.length());
}
}







分享到:
评论

相关推荐

    Excel导出数据(根据Excel模板定义)

    "Excel导出数据(根据Excel模板定义)"这个主题涉及到的核心技术是如何根据预设的Excel模板生成和导出数据,通常用于批量生成报表或者进行复杂的数据呈现。下面将详细解释这一过程及其相关知识点。 1. **Excel模板...

    java Excel导出 Excel数据处理

    在Java编程环境中,处理Excel数据并将其导出是一项常见的任务,尤其在数据分析、报表生成或者数据交换等场景中。Excel文件格式(.xlsx或.xls)因其直观易用和广泛支持而受到青睐。在这个主题中,我们将深入探讨如何...

    java导出复杂Excel内容数据动态循环

    java导出复杂Excel内容数据动态循环

    关于Java使用EasyExcel导出动态数据为Excel文件SpringBoot代码项目示例

    1、Java导出动态数据为Excel文件,具体示例可以参考:https://img-blog.csdnimg.cn/1cc86ee5dffa48669e2b97283585fad2.png 2、项目使用SpringBoot,Ali3.0.5版本的easyexcel框架。 3、资源内有具体的使用说明和易...

    Excel 导出数据到数据库

    本文将深入探讨“Excel导出数据到数据库”这一主题,讲解如何高效地将Excel中的数据导入到数据库系统,以实现数据的统一管理和分析。 一、Excel的数据整理与预处理 在导出数据之前,首先需要对Excel中的数据进行...

    自定义动态导出excel封装类

    同样,如果数据行数未知,可以在遍历数据列表时动态创建行。这样,封装类就能适应任何数据结构的导出需求。 总结,自定义动态导出Excel封装类是提升代码质量的有效方式,它能降低复杂度,提高代码的可读性和可维护...

    kettle 使用excel模板导出数据

    【Kettle与Excel模板导出数据详解】 Kettle,又称为Pentaho Data Integration(PDI),是一款强大的ETL(Extract, Transform, Load)工具,它允许用户从各种数据源抽取、转换和加载数据。在实际业务场景中,有时...

    Excel导出百万级数据

    本话题将深入探讨如何使用C#编程语言来解决“Excel导出百万级数据”的问题。 首先,我们需要理解Excel的性能瓶颈。Excel本身对打开和操作大量数据有一定限制,特别是2003版本之前的XLS格式,最大行数为65536行,而...

    ABAP-操作Excel导出数据

    在处理数据导出任务时,ABAP程序员有时需要将系统内的数据导出到Excel格式,以便用户进行进一步的数据分析或处理。在本场景中,我们将探讨如何通过OLE(Object Linking and Embedding)技术在ABAP中实现Excel数据...

    易语言导出超级列表框数据到Excel源码

    导出数据到Excel则需要利用Excel的接口或API,或者借助于文件格式的解析和写入能力。 首先,我们需要遍历超级列表框的所有行和列,获取每一项的数据。易语言提供了“取列表框项数”和“取列表框列数”等函数来获取...

    Freemarker实现excel导出功能

    这里`data`是数据列表,`item`是列表中的每个元素,`column1`和`column2`是对象属性。 2. 准备数据:在Java代码中,你需要创建一个包含所有数据的列表,然后将这个列表放入到一个Map对象中,作为数据模型。 3. ...

    Data From Keil to Excel (keil数据导出至excel)

    本话题主要关注如何从KEIL环境中导出内存数据,并利用Excel进行进一步的处理和可视化,以便更好地理解和分析数据。 首先,KEIL在仿真运行时会生成内存映像,这些数据包含了程序执行过程中的变量值、堆栈信息等。...

    POI实现的基于动态模板的EXCEL数据导出

    标题中的“POI实现的基于动态模板的EXCEL数据导出”是指利用Apache POI库来创建一个可以动态填充数据的Excel模板,从而实现大量数据的...通过上述方式,开发者可以利用Apache POI有效地处理大规模数据的Excel导出任务。

    vue el-table前端 file-saver 导出excel可导出分页数据.zip

    2. **导出数据准备**:首先,我们需要获取所有分页数据。这通常涉及向后端发送请求,获取所有页码的数据,然后合并。例如,如果每页显示10条数据,而有5页,那么我们需要请求5次,每次请求10条数据,然后合并成一个...

    兼容Office2003-2013的Excel导出或者数据获取解决方案

    此组件组件是采用NPOI2.0为核心二次开发的C#对Office操作的高性能组件,包含以下主要特点: ... 整合了多线程处理技术,针对海量数据的Excel导出,可以保证导出数据的操作流畅性,而不会导致假死等现象的出现。

    javaWeb中使用Excel模板导出业务数据

    在javaWeb开发中,会经常遇到导出业务数据的业务需求,导出Excel最常用的技术就是poi,对于简单的业务,我们可以动态的生成一个Excel文件,但对于复杂的业务,我们可以通过使用读取Excel模板的,然后往里面填充数据...

    EXCEL数据导入与导出超级列表框例程

    在这个“EXCEL数据导入与导出超级列表框例程”中,我们可以探讨以下几个核心知识点: 1. **数据导入**:Excel提供了多种数据导入方式,包括从文本文件(如CSV、TXT)、数据库(如SQL Server、Access)、网页和其它...

    delphi高效率导出数据到excel

    Delphi 高效率导出数据到 Excel Delphi 是一个功能强大的开发工具,可以用于开发各种类型的应用程序,而 Excel 是一个非常popular的电子表格软件,经常用于数据分析和处理。在实际开发中,我们经常需要将数据从 ...

    EasyExcel 动态表头 导出

    5. **导出数据**:最后,调用`doWrite`方法,传入需要导出的数据列表,EasyExcel会自动处理数据并生成Excel文件。 EasyExcel的动态表头导出功能,结合其强大的数据处理能力和灵活性,使得在处理复杂Excel导出场景时...

    excel导出支持前台和后台导出

    在IT行业中,Excel导出是一项常见的功能,尤其在企业级应用中,用于数据报表的生成与分享。"Excel导出支持前台和后台导出"这一技术主题涉及到如何在Web应用程序中实现用户请求的数据导出到Excel文件,既可以选择在...

Global site tag (gtag.js) - Google Analytics