将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()函数?

提前致谢

FormatVBA.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中转换。