Atitit.导出excel报表的设计与实现java .net php 总结

1. 导出报表 表格的设计要素1

1.1. 支持通用list<Map>转换1

1.2. 对于空列是否输出1

1.3. 支持http web直接输出1

2. Api2

2.1. private static void toExcel(String titles, String filds,List<Map> list,OutputStream outStrm)2

2.2. Response版 toExcel(String titles, String filds,List<ati> li,HttpServletResponse response )2

2.3. File版  toExcel(String titles, String filds,List<Map> list,String outputFilePath)2

3. Php版本PHPExcel4

1. 导出报表 表格的设计要素

1.1. 支持通用list<Map>转换

1.2. 对于空列是否输出

1.3. 支持http web直接输出

作者:: 绰号:老哇的爪子(EAGLE paw,鹰爪,简称爪子)   全名简写:Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

2. Api

2.1. private static void toExcel(String titles, String filds,List<Map> list,OutputStream outStrm)

2.2. Response版 toExcel(String titles, String filds,List<ati> li,HttpServletResponse response )

2.3. File版  toExcel(String titles, String filds,List<Map> list,String outputFilePath)

public static void toExcel(String titles, String filds,List<Map> list,String outputFilePath) throws Exception {

// 第一步,创建一个webbook,对应一个Excel文件

HSSFWorkbook wb = new HSSFWorkbook();

// 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet

HSSFSheet sheet = wb.createSheet("sheet1");

// 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short

HSSFRow row = sheet.createRow((int) 0);

// 第四步,创建单元格,并设置值表头 设置表头居中

HSSFCellStyle style = wb.createCellStyle();

style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式

String[] tit_arr=titles.split(",");

int n=0;

for(String tit:tit_arr)

{

HSSFCell cell = row.createCell((short) n);

cell.setCellValue(tit);

//cell.set

cell.setCellStyle(style);

n++;

}

// 第五步,写入实体数据 实际应用中这些数据从数据库得到,

for (int i = 0; i < list.size(); i++)

{

row = sheet.createRow((int) i + 1);

Map stu = (Map) list.get(i);

// 第四步,创建单元格,并设置值

int colIndex=0;

for(String tit:tit_arr)

{

String  curField=getFild(filds,colIndex);

Object v = stu.get(curField);

if(v==null) v="";

//String val =v.toString();

//// try{

////  val= v.toString();

//// }catch(Exception e){}

//if(val==null)continue;

HSSFCell cell = row.createCell((short) colIndex);

if(v instanceof Integer)

cell.setCellValue(Double.valueOf(v.toString()));

else

cell.setCellValue(v.toString());

//cell.setCellStyle(style);

colIndex++;

}

}

// 第六步,将文件存到指定位置

try

{

//String outputFilePath = "E:/students.xls";

FileOutputStream fout = new FileOutputStream(outputFilePath);

wb.write(fout);

fout.close();

}

catch (Exception e)

{

e.printStackTrace();

}

}

3. Php版本PHPExcel

参考

atitit.查询结果 导出为excel的实现java .net php 总结

Atitit.导出excel报表的设计与实现java .net php 总的更多相关文章

  1. Atitit.导出excel报表的设计与实现java .net php 总结

    Atitit.导出excel报表的设计与实现java .net php 总结 1. 导出报表 表格的设计要素1 1.1. 支持通用list<Map>转换1 1.2. 对于空列是否输出1 1 ...

  2. Atitit.导出excel功能的设计 与解决方案

    Atitit.导出excel功能的设计 与解决方案 1.1. 项目起源于背景1 1.2. Js  jquery方案(推荐)jquery.table2excel1 1.3. 服务器方案2 1.4. 详细 ...

  3. atitit.导出excel的设计----查询结果 导出为excel的实现java .net php 总结

    atitit.导出excel的设计----查询结果 导出为excel的实现java .net php 总结 1. 基本的流程 查询获得list 读取jsp的table获得标题and 字段的map to ...

  4. 从数据库中导出excel报表

    通常需要将后台数据库中的数据集或者是其他列表等导出excel 报表,这里主要引用了Apose.cells dll 类库, (1)直接上主要代码: protected void txtExport_Cl ...

  5. poi导出Excel报表多表头双层表头、合并单元格

    效果图: controller层方法: /**     *      * 导出Excel报表     * @param request     * @return     *      */    @ ...

  6. java导出excel报表

    1.java导出excel报表: package cn.jcenterhome.util; import java.io.OutputStream;import java.util.List;impo ...

  7. Java使用POI实现数据导出excel报表

    Java使用POI实现数据导出excel报表 在上篇文章中,我们简单介绍了java读取word,excel和pdf文档内容 ,但在实际开发中,我们用到最多的是把数据库中数据导出excel报表形式.不仅 ...

  8. 根据模板导出Excel报表并生成多个Sheet页

    因为最近用报表导出比较多,所有就提成了一个工具类,本工具类使用的场景为  根据提供的模板来导出Excel报表 并且可根据提供的模板Sheet页进行复制 从而实现多个Sheet页的需求, 使用本工具类时 ...

  9. 根据模板导出Excel报表并复制模板生成多个Sheet页

    因为最近用报表导出比较多,所有就提成了一个工具类,本工具类使用的场景为  根据提供的模板来导出Excel报表 并且可根据提供的模板Sheet页进行复制 从而实现多个Sheet页的需求, 使用本工具类时 ...

随机推荐

  1. 17、Django实战第17天:机构详情展示

    1.进入xadmin添加测试数据(教师.课程) 2.把以下4个前端页面复制到templates中 先打开这几个页面分析,它们和之前的课程机构列表页是不一样的机构,且没有共同的部分,但是这4个页面却是类 ...

  2. 【贪心】Codeforces Round #402 (Div. 2) C. Dishonest Sellers

    按照b[i]-a[i],对物品从大到小排序,如果这个值大于零,肯定要立刻购买,倘若小于0了,但是没买够K个的话,也得立刻购买. #include<cstdio> #include<a ...

  3. 【R笔记】R语言中的字符串处理函数

    内容概览 尽管R是一门以数值向量和矩阵为核心的统计语言,但字符串同样极为重要.从医疗研究数据里的出生日期到文本挖掘的应用,字符串数据在R程序中使用的频率非常高.R语言提供了很多字符串操作函数,本文仅简 ...

  4. [OpenJudge8786][暴力DP]方格取数

    方格取数 总时间限制: 1000ms 内存限制: 65536kB [描述] 设有N*N的方格图(N<=10),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字0.如下图所示(见样例): ...

  5. 动态规划之DP中判断是否到达某一状态(最短时间是什么)?

    codevs1684 垃圾陷阱  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold   题目描述 Description 卡门——农夫约翰极其珍视的一条Holste ...

  6. Scala实战高手****第15课:Scala类型参数编程实战及Spark源码鉴赏

    1.Scala的类和方法.函数都可以是泛型 2.上界:表示泛型的类型必须是某种类型或者其类型的子类,语法:<: ,对类型进行限定 3.下界:表示泛型的类型必须是某种类型或者其类型的父类,语法:& ...

  7. Word2010插入页码分节符

    不是分页符,分节符主要是为了插入前后两种不同类型的页码,比如前面查罗马数字,从目录开始插入阿拉伯数字.                 

  8. Linux下打包命令tar

    转:http://blog.chinaunix.net/uid-29021161-id-3922752.html Linux下最常用的打包程序是tar,用tar命令打成的包文件通常以.tar结尾 1. ...

  9. Matlab与C++混合编程 编写独立外部应用程序时出现“无法定位序数3906于动态链接库LIBEAY32.dll上”错误

    出现“无法定位序数3906于动态链接库LIBEAY32.dll上”错误,这种错误一般是同名函数出现在两个不同的头文件中了. 笔者的这个错误是由于 #include "mat.h" ...

  10. 用Thunderbird以HTML发邮件,收件人却总是收到文本邮件

    要在通讯录里面,把你要发送的人设置可以接收HTML格式的邮件,那么你才能发出HTML格式. 否则,Thunderbird默认你所发的收件人无法接收HTML格式邮件.