标题: 关于PEAR类库中用于操作EXCEL的类库Spreadsheet_Excel_Writer
smallcat
新手上路
Rank: 1



UID 65
精华 2
积分 20
帖子 10
翻译 0
原创 0
阅读权限 10
注册 2007-6-9
状态 离线
发表于 2007-6-11 20:04  资料  短消息  加为好友  添加 smallcat 为MSN好友 通过MSN和 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中的一个例子说明,我们常用的用法.

<?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();
?>

这个类还有一个功能很强大的功能就是它还可以输入EXCEL的函数。进行计算 。这就给了我们很大的自由

<?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();

?>

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

顶部
Haohappy
超级版主
Rank: 8Rank: 8
PHPEye站长


UID 2
精华 11
积分 110
帖子 260
翻译 6
原创 1
阅读权限 150
注册 2007-5-2
状态 离线
发表于 2007-6-11 21:49  资料  短消息  加为好友  添加 haohappy 为MSN好友 通过MSN和 haohappy 交谈
谢谢分享

顶部
hszhl
新手上路
Rank: 1



UID 154
精华 0
积分 0
帖子 3
翻译 0
原创 0
阅读权限 10
注册 2007-7-5
状态 离线
发表于 2007-7-5 09:06  资料  短消息  加为好友 
支持下

顶部
Matt
新手上路
Rank: 1



UID 382
精华 0
积分 0
帖子 8
翻译 0
原创 0
阅读权限 10
注册 2007-9-18
状态 离线
发表于 2007-9-18 20:33  资料  短消息  加为好友 
MARK。。。PEAR里好东西挺多的,如果要有中文手册就好了。
感觉网上很多类似技术网站里日文的都比较多,中文一般没有。

顶部
hongfu
新手上路
Rank: 1



UID 120
精华 0
积分 0
帖子 2
翻译 0
原创 0
阅读权限 10
注册 2007-6-26
状态 离线
发表于 2007-11-23 23:30  资料  短消息  加为好友 
这只小猫

顶部
hurrayboy
新手上路
Rank: 1



UID 501
精华 0
积分 0
帖子 6
翻译 0
原创 0
阅读权限 10
注册 2007-10-30
状态 离线
发表于 2007-11-25 22:08  资料  短消息  加为好友 
先收藏
PEAR 还没有尝试过.

顶部
 


PHPEye开源社区


当前时区 GMT+8, 现在时间是 2008-9-6 12:15

    Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
Processed in 0.015227 second(s), 6 queries , Gzip enabled

清除 Cookies - 联系我们 - PHPEye开源社区 - Archiver