Atitit.excel导出 功能解决方案 php java C#.net版总集合.doc

Atitit.excel导出 功能解决方案 php java C#.net版总集合.docx

1.1. Excel的保存格式office2003 office2007/2010格式1

1.2. 类库选型java .net均有apache.poi 可用,php使用phpexcel1.8.01

1.3. 需要解决的问题2

1.4. 自定义类库atiexcel2

1.5. Excel导出的流程细节--导出表头2

1.6. Excel导出的流程细节--导出数据2

1.7. Phpexcel与poi的差异3

1.1. Excel的保存格式office2003 office2007/2010格式

旧版office系列采用Office2003的保存格式,实质是一种二进制复合文档存储格式,目前已经被废弃。。

和旧版的 Office(Office 97、2000、XP、2003)相比,常见格式的 Office 文档文件的扩展名后都增加了一个 X,例如 Word 文档的 .DOC 格式变成了 .DOCX 格式、Excel 电子表格的 .XLS 格式变成了 .XLSX 格式,等等

OpenXML(OOXML)是微软在Office 2007中提出的一种新的文档格式,Office 2007中的Word、Excel、PowerPoint默认均采用OpenXML格式 。

新版的office系列均采用zip+ooxml格式存储

目前最新版本的office2016系列底层使用的存储格式仍然是office2007/2010格式。。

1.2. 类库选型java .net均有apache.poi 可用,php使用phpexcel1.8.0

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

转载请注明来源: http://www.cnblogs.com/attilax/

1.3. 需要解决的问题

需要可以把list<map>数据保存为excel。。

需要可以绑定list<map的表头映射表。。

Java php .net版本api统一性

1.4. 自定义类库atiexcel

开源的为了灵活性,提供api过于琐碎,导致开发效率不足。。需要做进一步的封装。。

1.5. Excel导出的流程细节--导出表头

function addLine($objPHPExcel,$line,$lineNum,$isFirstTitle=false){

//$line=$list[0];

$keys=array_keys($line);

$alphas_str="a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t";

$alphas=explode(",",$alphas_str);

$sheet=$objPHPExcel->setActiveSheetIndex(0);

$i=0;

//print_r( $keys );die();

foreach($keys as $key)

{

$alp=$alphas[$i];

//die($alp);

if($isFirstTitle)

$cell= $key;

else

$cell=$line[ $key];

$sheet->setCellValue($alp.$lineNum,$cell );

$i++;

}

}

1.6. Excel导出的流程细节--导出数据

导出数据基本与导出表头api一直,只是数据cell取值不同,,表头方式是取row的key,数据方式是需要row的value。。

1.7. Phpexcel与poi的差异

Phpexcel直接操作cell,使用a1,b2定位cell方式,poi需要先找到row,比较繁琐一些。。

参考

PHP操作Excel – PHPExcel 基本用法详解 - diandian_520的专栏 - 博客频道 - CSDN.NET.html

上一篇:发邮件 和 excel导出中文文件名


下一篇:讲解JavaScript两个圆括号、自调用和闭包函数