既然选择了远方,便只顾风雨兼程~~~

php 导入excel电子表文件(转帖)

上一篇 / 下一篇  2007-11-21 13:52:18

查看( 1874 ) / 评论( 24 )
在高级区看见的,觉得非常好,转一个到新手区给大家了解下,这个对做管理系统很有帮助,顺便我自己的博客也收藏下:-)

<?php


require_once '../Excel/reader.php';


// ExcelFile($filename, $encoding);
$data = new Spreadsheet_Excel_Reader();


// Set output Encoding.指定中文码
$data->setOutputEncoding('gb2312');

/***
* if you want you can change 'iconv' to mb_convert_encoding:
* $data->setUTFEncoder('mb');
*
**/

/***
* By default rows & cols indeces start with 1
* For change initial index use:
* $data->setRowColOffset(0);
*
**/



/***
*  Some function for formatting output.
* $data->setDefaultFormat('%.2f');
* setDefaultFormat - set format for columns with unknown formatting
*
* $data->setColumnFormat(4, '%.3f');
* setColumnFormat - set format for column (apply only to number fields)
*
**/
// 指定读取的excel文件
$data->read('../uploads/jsxz01.xls');

/*


$data->sheets[0]['numRows'] - count rows
$data->sheets[0]['numCols'] - count columns
$data->sheets[0]['cells'][$i][$j] - data from $i-row $j-column

$data->sheets[0]['cellsInfo'][$i][$j] - extended info about cell
   
    $data->sheets[0]['cellsInfo'][$i][$j]['type'] = "date" | "number" | "unknown"
        if 'type' == "unknown" - use 'raw' value, because  cell contain value with format '0.00';
    $data->sheets[0]['cellsInfo'][$i][$j]['raw'] = value if cell without format
    $data->sheets[0]['cellsInfo'][$i][$j]['colspan']
    $data->sheets[0]['cellsInfo'][$i][$j]['rowspan']
*/

error_reporting(E_ALL E_NOTICE);
// 循环读取每一个单元值
for ($i 1$i <= $data->sheets[0]['numRows']; $i++) {
    for (
$j 1$j <= $data->sheets[0]['numCols']; $j++) {
        echo 
"\"".$data->sheets[0]['cells'][$i][$j]."\",";
    }
    echo 
"<br>";

}


//print_r($data);
//print_r($data->formatRecords);
?>

Spreadsheet_Excel_Reader1.zip
(2007-11-21 13:51:54, Size: 17 kB, Downloads: 0)


TAG:

spjhf spjhf 发布于2007-11-21 13:53:36

Jimmy's Code Art jimmy 发布于2007-11-22 16:47:21
Spreadsheet_Excel_writer 也很不错。
小强(占卜师) coolstr 发布于2007-11-23 09:36:23
Spreadsheet_Excel_writer 是不错,不过写一个有格式excel出来超麻烦,还未找到如何可以套用模板。
小强(占卜师) coolstr 发布于2007-11-23 09:37:45
不知道这个类现在这个版本有没有读取前N行的功能,我上次操作一个超过2000行,90列的excel就已经超过PHP的内存限制。
小强(占卜师) coolstr 发布于2007-11-23 09:38:28
晕,怎么又跑到 辉老大的地盘 来了!
早谷社区发布于2007-11-25 14:58:26
怎么操作中文会出现Notice: iconv(): Detected an illegal character in input string in
阿米的个人空间 阿米 发布于2008-09-03 16:23:38
为什么 我导出的excel文件,再用你这个读的时候老是说:The filename excel.xls is not readable,但是这个文件明明存在呀
beeflj发布于2008-09-03 16:37:25
我寻找它好久了
感谢LS把它挖出来

jackygz发布于2008-09-18 16:13:43

又搜到辉老大的帖子
jackygz发布于2008-09-18 16:22:32
刚测试了一下
发现读不了中文
jackygz发布于2008-09-18 16:25:27
可以了
改了一下字符集后
把中文都全部读出来了
substr发布于2008-09-18 16:30:03
回复 11# jackygz 的帖子
可以读中文,把这句 $data->setUTFEncoder('mb'); 的注释拿掉
zz1001发布于2008-09-18 16:30:50
好的,有用再来感谢楼主哈
jackygz发布于2008-09-19 07:59:30

QUOTE:

原帖由 substr 于 2008-9-18 16:30 发表
可以读中文,把这句 $data->setUTFEncoder('mb'); 的注释拿掉
$data->setOutputEncoding('CP1251');
把这个改成
$data->setOutputEncoding('GBK');
就可以了
心痛发布于2008-09-19 08:44:55
能不能读多sheet的文件?
jackygz发布于2008-09-19 09:31:44
可以啊
sheet[0]就是表示读取excel里的第一个表
邂逅米莱发布于2008-09-19 16:27:23
   好东西
zhoucl发布于2008-09-19 17:28:09
直接用pear的execl吧

单独出来了,是吧?

[ 本帖最后由 zhoucl 于 2008-9-19 17:29 编辑 ]
xanxin的个人空间 xanxin 发布于2008-09-19 17:46:20
学习了
kzy_84发布于2008-12-11 16:15:05
太开心了,找它好久了
我来说两句

(可选)

Open Toolbar