PHPExcel扩展(支持读取和写入Excel2007/Excel5)

#1 Pony

本库继承了PHPExcel工作组的源码

PHPExcel是一款开源的支持读取和写入Excel2007/Excel5的全功能PHP程序

注意:本类和各款Excel桌面程序均默认使用UTF-8编码,故,本类输入和输出文本均为UTF-8编码

本人为其添加和扩展了几个函数,方便大家使用

使用方法和例子
在SpeedPHP程序中使用spClass函数初始化类

$test = spClass('icPHPExcel');//初始化本类后,本类将默认操作一个空白的Excel表
$test -> create('A','1','hello');//在A列第1行,写入hello数据
/*
在第2行A列写入world,B列写入ok;第3行A列写入is,B列写入it
*/
$testdata = array('2'=>array('A'=>'world','B'=>'ok'),'3'=>array('A'=>'is','B'=>'it'));
$test -> createAll($testdata);
$test -> saveExcel('test.xls');//将Excel保存至根目录中test.xls是文件名,这里可以填相对路径或绝对路径

--------------------------------------------------------

$test = spClass('icPHPExcel');//初始化本类后,本类将默认操作一个空白的Excel表
$test -> Load_Excel('test.xls');//执行此代码,程序将加载我们刚刚保存得到的 test.xls 文件
print_r($test -> find('A','1'));//将输出A1单元格的数据,这里应该是 hello
print_r($test -> findAll());//将输出整个表的数据

--------------------------------------------------------

本程序使用了魔术函数,你可以自行参考PHPExcel的官方API,直接通过 $test -> API(); 操作

但目前PHPExcel文档尚无中文版

更多的可用函数请参考PHPExcel文档或本程序后续文档

下载地址 http://code.google.com/p/icase-speedphp/downloads/list

该贴已经同步到 Pony的微博

2011-02-23 01:29:27

#2 jake

:) 好东西

2011-02-23 09:32:29

#3 elick

不错 不错 收藏了  谢谢楼主

2011-02-23 10:19:00

#4 7666345

:lol这个,咋循环输出数据啊,求解

2011-02-25 18:12:55

#5 Pony

回复 4 7666345


    使用 findAll(),然后使用 each() 就可以了,非常方便

2011-02-26 16:59:44

#6 ming62716

不错 不错 收藏了  谢谢楼主

2011-03-09 10:24:16

#7 vsxp

看看这个类。

2011-03-10 16:34:11

#8 gnuser

我尝试把
$test -> create('A','1','hello');//在A列第1行,写入hello数据

中的hello改成中文,结果提示输入cell.php错误。
请问有什么办法可以处理好?

2011-05-30 21:48:12

#9 jake

我尝试把
$test -> create('A','1','hello');//在A列第1行,写入hello数据

中的hello改成中文,结果提示输 ...
gnuser 发表于 2011-5-30 21:48
建议是把错误提示粘贴出来

2011-05-30 22:01:25

#10 Pony

回复 8 gnuser


    中文需要转码成UTF-8

2011-05-30 22:04:37

#11 gnuser

还要请教:我已经有一个EXCEL文件,包含1551行,34列内容。运行时出现超出内存“Allowed memory size of 20971520 bytes exhausted (tried to allocate 60 bytes)”提示。对于这样的EXCEL有什么办法可以解决问题?
谢谢

2011-05-30 22:18:52

#12 hygzs

好东西,学习一下

2011-08-31 15:49:02

#13 neversynever

感谢楼主的贡献,下载了你的源码来用。发现在处理多个sheet,也就是多个工作表的时候,有几个变量和函数名称有歧义,如下修改:
1. 函数改名:Tbl_Set 改为 setCurrentSheet
                   TblList   改为 getSheetList
2. 私有变量改名:tbl_id 改为 current_sheet_id
3. 如果想生成包含多个sheet的工作表,还需要封装一个新增sheet的函数,不然setCurrentSheet到不存在的sheet是会报错,数组越界:
        public function createSheet($sheet_id)
        {
            $this -> needle -> createSheet($sheet_id);
        }

以上,不知道这样是不是有改进效果,呵呵,再次感谢楼主。

2011-11-16 13:12:12

#14 wastong

header("Content-type:application/xls");
header("Content-Disposition:attachment;filename=test.xls");

实现另存为  不好用 求解答

2012-12-05 14:29:03

#15 xpp1000

不错谢谢了

2013-01-11 13:47:52

#16 zhgzzy

$ex = spClass('icPHPExcel');
foreach($rs as $i=>$one){
.....
}
$ex -> createAll($test);
$ex -> saveExcel('Excel.xls'); //执行到这里就出错了
是不是服务器上要装上Excel这个软件呀

2013-12-18 10:44:29

#17 jake

zhgzzy 发表于 2013-12-18 10:44
$ex = spClass('icPHPExcel');
foreach($rs as $i=>$one){
.....
出错提示啥?

2013-12-18 10:58:47

#18 zhgzzy

jake 发表于 2013-12-18 10:58
出错提示啥?
saveExcel('test.xls'); 就是执行到这句,保存不了,出现服务器错误

2013-12-18 11:04:41

#19 jake

zhgzzy 发表于 2013-12-18 11:04
saveExcel('test.xls'); 就是执行到这句,保存不了,出现服务器错误
最好写一下你的服务器错误日志里面提示的信息,否则靠猜是解决不了问题的。

另外,这个扩展我自己也在用,没遇过什么问题。

2013-12-18 14:56:23

#20 熊家湾的孩子

怎么样把数据从数据库循环导出到Excel啊

2013-12-27 23:05:23

#21 xpp1000

使用这个组件是不是必须要装office

2014-04-16 10:26:39

#22 xieguolun

到不了客户端呀

2014-12-27 19:32:00

#23 7666345

               $fileName="选校单".date('Y-m-j-G:i:s').".xls";
                      $fileName = iconv("UTF-8","GBK",$fileName);
                      $test -> outputExcel($fileName);

2015-01-06 15:44:03

#24 xpp1000

http://yunpan.cn/cy6b6ZfYBhSgz (提取码:ed36)

2015-01-09 16:03:11

#25 xpp1000

大家可以在这里下载

2015-01-09 16:04:23

#26 xiandairen

在导出生成excel文件时,怎么把数组的下表转换成对应列的字母啊?有什么方法可以提供一下吗

2015-01-20 17:36:40

#27 dongfan

已经找不到这个文件的下载载地址了,过期了。

2017-02-22 10:35:58