网上有很多朋友问到 PHP生成Excel文件 的问题, 现整理如下:
CODE |
-
-
- require 'Spreadsheet/Excel/Writer.php';
-
- $workbook = new Spreadsheet_Excel_Writer(); // 初始化类
-
- $workbook->send('multi-worksheet-demo.xls'); // 发送 Excel 文件名供下载
-
- $worksheet =& $workbook->addWorksheet('sheet-1'); // 加入一个工作表 sheet-1
-
- $data = array(
- array('name', 'sex', 'age'),
- array('alex', 'M', '18'),
- array('joe', 'F', '16')
- );
-
- for ($row = 0; $row < count($data); $row ++) {
- for ($col = 0; $col < count($data[0]); $col ++) {
- $worksheet->writeString($row, $col, $data[$row][$col]); // 在 sheet-1 中写入数据
- }
- }
-
-
- $worksheet =& $workbook->addWorksheet('sheet-2'); // 加入一个工作表 sheet-2
-
- $data = array(
- array('name', 'sex', 'age'),
- array('Smith', 'M', '28'),
- array('foo', 'F', '16')
- );
-
- for ($row = 0; $row < count($data); $row ++) {
- for ($col = 0; $col < count($data[0]); $col ++) {
- $worksheet->writeString($row, $col, $data[$row][$col]); // 在 sheet-2 中写入数据
- }
- }
-
- $workbook->close(); // 完成下载
- ?>
-
|
如果没有用过PEAR,过程如下:
PEAR很容易啊
例如:
1.在根目录下建立文件夹,名为"WEB-INF"(或"PEAR"什么的都可以);
2.在 http://pear.php.net/package/PEAR/download 下载 PEAR-1.4.9.tgz(呵呵,还是最新版呢);
3.把 PEAR-1.4.9.tgz 解压后的 pear.php 复制到 "WEB-INF" 路径下;
4.在 http://pear.php.net/package/Spreadsheet_Ex...Writer/download 下载Spreadsheet_Excel_Writer-0.9.0.tgz;
5.在 http://pear.php.net/package/OLE/download 下载 OLE-0.5.tgz;
6.把 Spreadsheet_Excel_Writer-0.9.0.tgz 中的 "Writer.php" 和 "Writer" 文件夹解压到 "WEB-INF/Spreadsheet/Excel/" 路径下;
7.把 OLE-0.5.tgz 中的 "OLE.php" 和 "PPS.php" 和 "PPS" 文件夹解压到 "WEB-INF/OLE" 路径下;
8.在根目录下建立 "global.php":
CODE |
-
-
- $path = $_SERVER['DOCUMENT_ROOT'].'/WEB-INF'; // 你自定义的 PEAR 路径
- set_include_path(get_include_path() . PATH_SEPARATOR . $path); // 设置 PHP 环境变量路径为除 php.ini 默认的以外, 再加上你自定义的 PEAR 路径
- ?>
-
|
这样, 我刚刚给出的程序在开头加上
CODE |
- require_once 'global.php';
|
就可以使用了.
======================================================
总结如下:
1.PEAR也没什么神秘的,它和你自定义的包含文件或自定义的类没什么区别,只要路径正确,就可以访问;
2.PEAR的所有类(如"Spreadsheet_Excel_Writer")命名有点像JAVA,每个下划线代表一个子目录,非常规范的;
例如"OLE-0.5.tgz"说明它应在PEAR目录下的OLE目录;
例如"Spreadsheet_Excel_Writer"说明它应在PEAR目录下的Spreadsheet/Excel/Writer目录(它的压缩包里已经有一个Writer目录,与Writer.php在同一层);
3.有些强大的PHP环境配置包,如 http://www.apachefriends.org/en/xampp.html 的 XAMPP,已经集成了大部分的PEAR包(呵呵,当前版本似乎还没包含Spreadsheet_Excel_Writer),这样,就不用你部署PEAR,直接就可以使用;