Конвертировать формат VB () в PHP
В PHP я пытаюсь прочитать файл Excel с помощью COM():
$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
Я знаю, что могу использовать функцию Format() в VB, но я не знаю, с какого объекта в 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
Вы случайно не знаете, как я могу вызвать эту функцию Format() с помощью PHP?
заранее спасибо
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;
Format() выглядит как функция Visual Basic. Он не обязательно доступен для вас через COM-объект Excel, с которым вы общаетесь, - только если этот объект где-то объявляет его. Диапазон функций VB не импортируется автоматически в PHP при обращении к COM-объекту.
Ты можешь попробовать $rrc_app->Format()
?
Если ничего не работает, я рекомендую выяснить, что означает значение времени (я уверен, что вы можете узнать здесь о SO) и преобразовать его в PHP.