基于COM的PHP与Microsoft Office的应用集成技术

时间:2022-09-17 12:50:50

基于COM的PHP与Microsoft Office的应用集成技术

[摘要] 本文主要介绍基于COM的PHP与Microsoft Office的应用集成技术,并通过具体的应用示例说明其编程模式。

[关键词] Web;Office;PHP;COM;应用集成技术

一、引言

目前,Microsoft Office的应用已十分广泛,Web应用的发展也相当迅速(如电子商务、电子政务等)。在某些Web应用中,需要集成一定的Microsoft Office功能,如自动生成Word文档、Excel工作表或PowerPoint演示文稿等。为此,可使用COM技术并结合编程加以实现。

PHP是目前流行的一种Web编程语言,具有开放源码、完全免费、可跨平台运行等优点,已成为各类Web应用的首选开发语言之一。因此,本文主要介绍基于PHP的Web应用集成Microsoft Office功能的基本技术。

二、COM技术简介

COM(Component Object Model,组件对象模型)是微软公司所推出并已得到广泛应用的一种组件标准。所谓组件,其实就是包含在动态链接库或可执行文件中的二进制的可执行代码。在一个组件中,可提供一个或多个对象,且每个对象均可拥有相应的方法、属性与集合。

通过COM组件,可为应用程序、操作系统或其他组件提供某些服务。利用COM技术,也可实现应用程序之间的交互与无缝连接,共同完成复杂的功能,并使之具有良好的可扩展性与可维护性。

在程序中,要使用组件所提供的某个对象,首先要创建该对象的实例,然后通过对象实例访问相应的方法、属性与集合。在完成所需要的操作后,再将对象实例删除掉,以释放其所占用的内存空间。

三、PHP的COM功能

在Windows平台下,PHP提供了内置的COM功能。利用PHP的COM类可创建有关组件对象的实例,基本格式为:

$obj = new COM("ProgID");

其中,COM为类名,ProgID为组件对象名,$obj为组件对象实例变量。通过实例变量并使用“->”运算符,即可引用组件对象的有关属性、集合与方法。若将实例变量赋为空值(NULL),则可清除相应的对象实例。

四、PHP与Microsoft Office的应用集成

Microsoft Office所包含的各个软件均有基于COM技术的组件对象,如Word、Excel、PowerPoint的组件对象分为Word.Application、Excel.Application、PowerPoint.Application。在PHP中,利用这些组件对象,即可集成相应的Microsoft Office应用。

关于Microsoft Office中有关组件对象的模型及其用法,请查阅其技术文档或有关资料。在此,仅通过实例说明在PHP中集成Microsoft Office应用的基本方法与编程技术。

1.PHP与Word的应用集成

在PHP中集成Word功能,可动态地创建相应的文档,并在其中添加有关的内容,或实现相关的操作,如打印、保存等。

实例一:动态生成Word文档,并提供下载链接。

$MyPath=dirname(stripslashes($_SERVER["PATH_TRANSLATED"]));

$MyTFN="MyTest.doc"; //测试文档名

$MyWord=new COM("Word.Application") or die("错误:无法启动Word");

$MyWord->Visible=true;//显示Word窗口

$MyWord->Documents->Add();//新建文档

$MyText="测试内容abc...";

$MyWord->Selection->TypeText($MyText);//输出内容

$MyWord->Selection->TypeParagraph();//插入段落

$MyRange=$MyWord->Selection->Range;

$MyTable=$MyWord->ActiveDocument->Tables->Add($MyRange,3,5);//插入表格

$MyCell=$MyTable->Cell(1,1);

$MyCell->Range->InsertAfter("Test-1-1");

$MyWord->ActiveDocument->SaveAs($MyPath."\\".$MyTFN);//保存文档

$MyWord->Quit();//关闭Word窗口

$MyWord=NULL;

echo "下载".$MyTFN."文档";

?>

2.PHP与Excel的应用集成

在PHP中集成Excel功能,可动态地创建相应的电子表格文件,并完成相关的各种操作。这对于各种报表的生成来说,是较为实用的一种方案。

实例二:动态生成Excel文件,并提供下载链接。

$MyPath=dirname(stripslashes($_SERVER["PATH_TRANSLATED"]));

$MyTFN="MyTest.xls";

$MyExcel=new COM("Excel.Application") or die("错误:无法启动Excel");

$MyExcel->Visible=true;

$MyExcel->Workbooks->Add();

$MyExcel->Worksheets[1]->Cells[1][1]->Value="Test-1-1";

$MyExcel->ActiveWorkbook->SaveAs($MyPath."\\".$MyTFN);

$MyExcel->Quit();

$MyExcel=NULL;

echo "下载".$MyTFN."文件";

?>

3.PHP与PowerPoint的应用集成

在PHP中集成PowerPoint功能,同样可动态地创建相应的演示文稿,并完成相关的各种操作。

实例三:动态生成PowerPoint文件,并提供下载链接。

$MyPath=dirname(stripslashes($_SERVER["PATH_TRANSLATED"]));

$MyTFN="MyTest.ppt";

$MyPP=new COM("PowerPoint.Application") or die("错误:无法启动PowerPoint");

$MyPP->Visible=true;

$pptPres=$MyPP->Presentations->Add();

$aSlide=$pptPres->Slides->Add(1,1);//插入第1张幻灯片,采用1号样式

$aSlide->Shapes[1]->TextFrame->TextRange->Text = "Test123...";

$aSlide->Shapes[2]->TextFrame->TextRange->Text = "Testabc...";

$MyPP->ActivePresentation->SaveAs($MyPath."\\".$MyTFN);

$MyPP->ActivePresentation->close();

$MyPP->Quit();

$MyPP=NULL;

echo "下载".$MyTFN."文件";

?>

五、结束语

在Web应用中集成一定的Microsoft Office功能,有利用进一步提高应用的水平,更好地满足用户的实际需要。利用本文所述的方法,可在PHP中动态地生成相应的Word文档、Excel工作表或PowerPoint演示文稿。在此基础上,再进行相应的研究与改进,即可实现更加复杂的操作,如自动进行排版、打印等。

参考文献:

[1]曹轶群孙一江张永学:PHP高级开发技术与应用[M].北京:清华大学出版社,2002.168~170

[2]Microsoft Office2000的VBA帮助文档

上一篇:广告英语修辞欣赏 下一篇:基于分形维数的垩白米检测系统