论文部分内容阅读
[摘要] 本文主要介绍基于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文档,并提供下载链接。
<?php
$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文件,并提供下载链接。
<?php
$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文件,并提供下载链接。
<?php
$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帮助文档
[关键词] 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文档,并提供下载链接。
<?php
$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文件,并提供下载链接。
<?php
$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文件,并提供下载链接。
<?php
$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帮助文档