在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()函数?
提前致谢
答案 0 :(得分:2)
Format
是VBA.String
模块的一个函数,因此它不是Excel COM库的一部分,我不确定它是否可以通过COM访问。
但是,您可以使用Text
属性而不是Value
:这将返回格式化字符串(根据Excel中的单元格格式)而不是基础值:
$review_time = $rrc_worksheet->Range("C30")->Text;
编辑:如果单元格格式不正确,您可以在阅读Text
属性(未经测试)之前更改格式:
$rrc_worksheet->Range("C30")->Select();
$rrc_app->Selection->NumberFormat = "hh:mm:ss";
$review_time = $rrc_worksheet->Range("C30")->Text;
答案 1 :(得分:1)
Format()看起来像Visual Basic function。您不一定可以通过正在与之通信的Excel COM对象 - 只有当该对象在某处声明它时才可用。与COM对象通信时,VB函数范围不会自动导入PHP。
你能试试$rrc_app->Format()
吗?
如果没有任何作用,我建议弄清楚时间值代表什么(我相信你可以在这里找到SO)并用PHP转换它。