将VB的格式()转换成PHP
在PHP中,我正在尝试使用COM()读取Excel文件:
$rrc_app = new COM("Excel.application"); $rrc_workbook = $rrc_app->Workbooks->Open($filename); $rrc_worksheet = $rrc_workbook->Worksheets('Top sheet'); $rrc_worksheet->activate;
我试图提取包含“时间”值的单元格的值:
$review_time = $rrc_worksheet->Range("C30")->value;
但是,它返回一个十进制数字:
0.604166666667
我知道我可以使用VB的Format()函数,但是我不知道从PHP的哪个对象中调用它。 下列:
$review_time = Format($rrc_worksheet->Range("C30")->value, "hh:mm:ss");
得到:
Fatal error: Call to undefined function Format() in C:\xampplite\htdocs\pmc\index.php on line 40
你碰巧知道如何使用PHP调用这个Format()函数?
提前致谢
Format
是VBA.String
模块的一个function,所以它不是Excel COM库的一部分,我不确定它是否可以通过COM访问。
但是,可以使用Text
属性而不是Value
:这将返回一个格式化的string(根据Excel中的单元格格式)而不是基础值:
$review_time = $rrc_worksheet->Range("C30")->Text;
编辑:如果单元格还没有正确的格式,您可以在阅读Text
属性(未经testing)之前更改格式:
$rrc_worksheet->Range("C30")->Select(); $rrc_app->Selection->NumberFormat = "hh:mm:ss"; $review_time = $rrc_worksheet->Range("C30")->Text;
Format()看起来像一个Visual Basic函数 。 它不一定可以通过你正在与之通信的Excel COM对象 – 只有当该对象声明它在某个地方。 与COM对象交谈时,VB函数范围不会自动导入到PHP中。
你可以试试$rrc_app->Format()
?
如果什么都行不通,我build议搞清楚什么时间价值代表(我敢肯定,你可以在这里find),并在PHP中转换。