Конвертировать формат VB () в PHP - PullRequest
2 голосов
/ 10 января 2010

В 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 ]

2 голосов
/ 10 января 2010

Format является функцией модуля VBA.String, поэтому он не является частью библиотеки COM COM Excel, и я не уверен, доступен ли он вообще через COM.

Однако вместо Value можно использовать свойство Text: при этом возвращается отформатированная строка (в соответствии с форматом ячейки в 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 голос
/ 10 января 2010

Формат () выглядит как функция Visual Basic . Он не обязательно доступен для вас через COM-объект Excel, с которым вы общаетесь, - только если этот объект где-то объявляет его. Диапазон функций VB не импортируется автоматически в PHP при разговоре с COM-объектом.

Можете ли вы попробовать $rrc_app->Format()?

Если ничего не работает, я рекомендую выяснить, что означает значение времени (я уверен, что вы можете узнать здесь о SO) и преобразовать его в PHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...