Конвертировать формат 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.

Другие вопросы по тегам