导航:首页 > 编程语言 > php调用com组件

php调用com组件

发布时间:2023-03-21 21:33:07

‘壹’ php调用COM组件操作EXCEL文档的问题

COM组件是通用的,如果你想用调用COM组件来操作EXCEL文档,建议可以参考的工具和资料如下:

1. office (excel)VBA帮助文档,VBA中包含对象、属性、方法的说明。

2. 使用OCX、DLL等查看工具,比如:

oleview软件

比较简便的办法,你可以下载 vbsEdit 软件,其中带有 oleview 查看工具,当你引入某个 com 组件时,会自动显示该组件对象的方法、属性等。

‘贰’ 如何用PHP调用自己编写的COM组件

首先写ActiveX Dll:

新建一个VB6工程,ActiveX Dll将工程命名为P_test,类名为c_test ,类的文件内容如下:

Option Explicit

Private MyscriptingContext As scriptingContext

Private MyApplication As Application

Private MyRequest As Request Private MyResponse As Response

Private MyServer As Server

Private MySession As Session Public

Sub OnStartPage(PassedscriptingContext As scriptingContext)

Set MyscriptingContext = PassedscriptingContext

Set MyApplication = MyscriptingContext.Application

Set MyRequest = MyscriptingContext.Request

Set MyResponse = MyscriptingContext.Response

Set MyServer = MyscriptingContext.Server

Set MySession = MyscriptingContext.Session

End Sub

Public Sub OnEndPage()

Set MyscriptingContext = Nothing

Set MyApplication = Nothing

Set MyRequest = Nothing

Set MyResponse = Nothing

Set MyServer = Nothing

Set MySession = Nothing

End Sub

Public Function Test_Number(num) As Variant

If num 0 Then Get_Number_Attrib = 1

If num = 0 Then Get_Number_Attrib = 0

End Function

编译生成p_test.dll文件

注册

提示符下运行:regsvr32 p_test.dll

编写php文件,test.php4代码如下:

<?php

$b=new COM("p_test.c_test");

$a=$b->Test_Number(-454);

echo $a;

?>

可能碰到的问题是,编译工程时通不过,要将Microsoft Active Server Pages Object Library引用进来,具体实现"Project->References"找到改库,并勾上 。

‘叁’ php调用com组件exception 'com_exception' with message 'Failed to create COM object 'WPS.Application

COM组件虽然也是DLL扩展,但它不是PHP扩展,所以把Senc.dll拷贝到php/ext 目录,然后在PHP.INI里加载是错误的,PHP也不认识它。
你这个是表示com组建不能使用,com组建在windows下需要注册的额。

‘肆’ PHP 调用COM组件问题求助,高分悬赏,求各位高手或有相似问题解决经历的同学看看,不胜感谢!

$word->Documents是一个数组,这个数组里当然没有SaveAs对象。

你应该:$word->Documents[0]->SaveAs("D:\\web\\online\\html\\".$name.".html",8);

另外,SaveAs里面的地址不必要用反斜杠,用斜早或唤杠就可以。

下面的陆凯是官方手册,你在页面中用浏览器自带的搜索功能(ctrl+F)搜索SaveAs就可以看到团嫌它的爽正确用法。

参考资料:
【The COM class】 http://www.php.net/manual/zh/class.com.php

‘伍’ 你好,请指导下php调用COM组件处理excel

以下一个php调用COM访问excel的示例:

<?php
//指定页面编码,防止出现中文乱码的情形
header('Content-type: text/html; charset=gb2312');

//启动Excel
$ms_excel = new COM("excel.application") or die("不能打开Excel应用程序");

//打开excel文件
$ms_excel->Application->WorkBooks->Open( 'e:\test\test.xls') or die("不能打开工作簿");

//在工作簿的第2个工作表的单元格B1中输入文本
$ms_excel->Worksheets(2)->Range("B1")->Value = "测试";

//保存工作簿
if(!$ms_excel->ActiveWorkBook->Saved)
{
$ms_excel->ActiveWorkBook->save();
}

//关闭工作簿
$ms_excel->Quit();

//清空对象
$ms_excel = null;
?>

‘陆’ PHP调用COM组件操作WORD问题

hp // 建立一个指向新COM组件的索引 $word = new COM("word.application")

‘柒’ php中有个com组件,它里面都有哪些属性和方法可以调用呢

先到PHP.INI中打开COM选项,com.allow_dcom = true


PHP 5.4.5后,com/dotnet 模块已经成了单独的扩展,所以需要在PHP.ini中配置extension=php_com_dotnet.dll,如果PHP VERSION<5.4.5 则不需要。否则的话,可能就是报错 Fatal error: Class 'COM' not found 了


配置方法为:只需在扩展列表里添加extension=php_com_dotnet.dll即可

另外需要了解的是,COM组件虽然也是DLL扩展,但它不是PHP扩展,所以把Senc.dll拷贝到php/ext 目录,然后在PHP.INI里加载是错误的,PHP也不认识它


配置完毕后可以测试下,语句为

$word=newCOM("word.application")ordie("UnabletoinstanciateWord");
print"LoadedWord,version{$word->Version} ";

上面语句本机必须安装了office才可以

openoffice的为:

$obj=newCOM("com.sun.star.ServiceManager")ordie("UnabletoinstanciateWord");
阅读全文

与php调用com组件相关的资料

热点内容
pdf金 浏览:511
湖北拼团商城源码 浏览:198
为什么说服务器没有响应 浏览:972
linux怎么搭web服务器 浏览:254
房产证加密收费吗 浏览:154
slam算法处理数据 浏览:268
如何判断服务器ip地址和版本号 浏览:966
python获取html内容 浏览:771
北欧大神程序员 浏览:205
安卓手机怎么拍出照片的质感 浏览:836
编译后的病毒长什么样子 浏览:24
围棋与程序员 浏览:260
加密和解密的单词 浏览:984
我的世界td服务器怎么注册 浏览:416
编译器的堆空间 浏览:604
云引擎云服务器 浏览:912
解压视频声控吃冰意大利 浏览:409
涡旋压缩机动涡盘 浏览:882
手机邮件发文件夹 浏览:452
魔兽世界怀旧服tbc萨满宏命令 浏览:549