您的位置:首页 > 编程语言 > PHP开发

PHP读取Excel 之 Spreadsheet_Excel_Reader和Writer

2012-07-03 17:28 826 查看
之前看到过好多关于PHP导出Excel的文章,自己也通过不少方法实现过,例如,echo一个Table,然后将header修改为Excel即可。

其实在众多方法中感觉Pear中的Spreadsheet_Excel_Writer很是好用。

关于Spreadsheet_Excel_Writer的安装本文不予介绍,可通过Google找到答案:)
也可参考:http://pear.php.net/package/Spreadsheet_Excel_Writer/download

<?php

//调用Writer.php

require_once 'Spreadsheet/Excel/Writer.php';

//创建Workbook

$workbook = new Spreadsheet_Excel_Writer();

//定义导出Excel文件名

$workbook->send('test.xls');

//创建Worksheet

$worksheet =& $workbook->addWorksheet('My first worksheet');

//设置字体大小

$format_column = & $workbook->addformat(array('Size'=>9,'Bold'=>1));

//数据写入

//标题行(第一行)

$worksheet->write(0, 0, 'Name', $format_column);

$worksheet->write(0, 1, 'Age', $format_column);

//第一个人(第二行)

$worksheet->write(1, 0, 'John Smith');

$worksheet->write(1, 1, 30);

//第二个人(第三行)

$worksheet->write(2, 0, 'Johann Schmidt');

$worksheet->write(2, 1, 31);

//第三个人(第四行)

$worksheet->write(3, 0, 'Juan Herrera');

$worksheet->write(3, 1, 32);

//关闭Workbook

$workbook->close();

?>

复制代码
效果图:



当然,Spreadsheet_Excel_Writer的设置远远不止这些,详细介绍请参考:

http://pear.php.net/package/Spreadsheet_Excel_Writer/docs

和Spreadsheet_Excel_Writer类似,Spreadsheet_Excel_Reader是用来读取Excel内容的工具。

可以方便的将Excel数据导入到数据或者其他用途。

如下代码:

<?php

//调用Reader

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

//创建 Reader

$data = new Spreadsheet_Excel_Reader();

//设置文本输出编码

$data->setOutputEncoding('GB2312');

//读取Excel文件

$data->read("c:\test.xls");

//$data->sheets[0]['numRows']为Excel行数

for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {

//$data->sheets[0]['numCols']为Excel列数

for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {

//显示每个单元格内容

echo $data->sheets[0]['cells'][$i][$j];

}

}

?>

复制代码
另,由于日期型的特殊性,在取值时可能会产生错误,可将Excel单元格类型设为Text,将日期以文本形式读取,如需日期型字符再通过PHP对其进行处理即可(strtotime()结合date())。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: