PHPEye开源社区 » PHP技术讨论区 » 关于PEAR类库中用于操作EXCEL的类库Spreadsheet_Excel_Writer
《Programming PHP》第二版上市
2007-6-11 20:04 smallcat
关于PEAR类库中用于操作EXCEL的类库Spreadsheet_Excel_Writer

关于PEAR类库中用于操作EXCEL的类库Spreadsheet_Excel_Writer

首先安装Spreadsheet_Excel_Writer
仔细看PEAR手册其实File Formats->Spreadsheet_Excel_Writer扩展就只有四个类.
1.Spreadsheet_Excel_Writer类                //
2.workbook 类                               //当前EXCEL文件的操作
3.worksheet类                               //负责对工作区的设置
4.format类                                  //负责对单元格样试设置
//以下就拿PEAR中的一个例子说明,我们常用的用法.
[code]
<?php
//引入类文件
require_once 'Spreadsheet/Excel/Writer.php';

//新建一个Spreadsheet_Excel_Writer对象.当你指定了文件件名,他会在当前目录下生民一个XLS文件。
$workbook = new Spreadsheet_Excel_Writer('test.xls');

//创建样试对象,你可以定义多个样试对象并将他们应用到你指定的单元格中.
//你可以设置边框大小,边框颜色,字体大小,颜色等样式,详细请看PEAR手册.
//当然你也可以这样用一句定义
/*
主要得到一种样式对象 设置右和下边框宽度为1,这样就可以显示黑色边框,字大小,边框色,前景色. 这是一种简单的写法和下面的用方法的功能是一样的.
$format_title =& $workbook->addFormat(array('right' => 1, 'bottom' => 1, 'size' => 9,
         'pattern' => 1, 'bordercolor' => 'black',
         'fgcolor' => 'yellow'));
当然这个还有很多的参数,具体的你可以参看PEAR手册。
*/
$format_bold =& $workbook->addFormat();
//设置为样试为粗体
$format_bold->setBold();
//同样得到一个样试对象
$format_title =& $workbook->addFormat();
//设置为粗体
$format_title->setBold();
//设置字体色
$format_title->setColor('yellow');
$format_title->setPattern(1);
//设置单元格的前景色
$format_title->setFgColor('blue');

//创建一个工作区对象,添加一个工作区也就是SHEET
$worksheet =& $workbook->addWorksheet();

//设置从0到0列的宽试.这个函数可以设置列的宽度.第一个参数是开始列号,第二个参数是结束列号.第三个参数就是宽度值了.
//本函数还支持一种用法就是$worksheet->setColumn(0, 1, 30); 就是第0列和第一列宽度都是30
$worksheet->setColumn(0, 0, 30);

//在第0行0列单元格的内容设置为 "Quarterly Profits for Dotcom.Com" 并将单元格的样试设置为我们刚刚定义的$format_title
$worksheet->write(0, 0, "Quarterly Profits for Dotcom.Com", $format_title);
//以下同理,都是设置单元格的内容,只是坐标和内容不同
$worksheet->writeString(1, 0, "Quarter", $format_bold);
$worksheet->writeString(1, 1, "Profit", $format_bold);
$worksheet->writeString(2, 0, "Q1");
$worksheet->writeNumber(2, 1, 0); //当你写入一个数字类型的变量时最好用 writeNumber方法。当然你用write方法同样可以写入。不过由于类型不同在有些EXCEL打开时会提示类型不正确
$worksheet->writeString(3, 0, "Q2");
$worksheet->writeNumber(3, 1, 0);

//最后发送本文件到浏览器
$workbook->send('test.xls');
//关闭
$workbook->close();
?>
[/code]
这个类还有一个功能很强大的功能就是它还可以输入EXCEL的函数。进行计算 。这就给了我们很大的自由
[code]
<?php
//同样生成一个对象
$workbook = new Spreadsheet_Excel_Writer('rowcol.xls');
//建立一个工作区
$worksheet1 =& $workbook->addWorksheet("rowcol");
//写入数据
$first = 1;
$last = 10;
for ($i = $first; $i <= $last; $i++) {
    $worksheet1->write($i, 1, $i);
}
//设置要参加计算的两个单元格的位置
$cell1 = Spreadsheet_Excel_Writer::rowcolToCell($first, 1);
$cell2 = Spreadsheet_Excel_Writer::rowcolToCell($last, 1);
//写入最后汇总显示的 total=
$worksheet1->write($last + 1, 0, "Total =");
//写入功式
$worksheet1->writeFormula($last + 1, 1, "=SUM($cell1:$cell2)");

$workbook->close();

?>
[/code]
以上只是一个简单的例子只是为了让大家可以快速上手.更详细的还是要看PEAR手册.

2007-6-11 21:49 Haohappy
谢谢分享:victory:

2007-7-5 09:06 hszhl
支持下

2007-9-18 20:33 Matt
MARK。。。PEAR里好东西挺多的,如果要有中文手册就好了。
感觉网上很多类似技术网站里日文的都比较多,中文一般没有。

2007-11-23 23:30 hongfu
这只小猫:lol

2007-11-25 22:08 hurrayboy
先收藏
PEAR 还没有尝试过.

页: [1]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.