PHP içine VB Format () dönüştürmek

2 Cevap php

PHP, I) COM (kullanarak bir Excel dosyasını okumaya çalışıyorum:

$rrc_app = new COM("Excel.application");
$rrc_workbook = $rrc_app->Workbooks->Open($filename);
$rrc_worksheet = $rrc_workbook->Worksheets('Top sheet');
$rrc_worksheet->activate;

Ben bir "Time" değerini içeren bir hücrenin değerini ayıklamak için çalıştı:

$review_time = $rrc_worksheet->Range("C30")->value;

Ancak, bir ondalık sayı döndürür:

0.604166666667

Ben Format VB () işlevini kullanabilirsiniz biliyorum, ama ben onu aramak için PHP ne nesneden bilmiyorum. Aşağıdaki:

$review_time = Format($rrc_worksheet->Range("C30")->value, "hh:mm:ss");

Verir:

Fatal error: Call to undefined function Format() in C:\xampplite\htdocs\pmc\index.php on line 40

Eğer PHP kullanarak () fonksiyonu bu Format aramak nasıl biliyor musunuz?

Şimdiden teşekkürler

2 Cevap

Format VBA.String modülünün bir fonksiyonu olduğunu, bu nedenle Excel COM kütüphanesinin bir parçası değil ve tüm COM erişilebilir olup olmadığından emin değilim.

Ancak, yerine Text özelliğini kullanabilirsiniz Value: Bu oldukça yatan değerden (Excel'de hücre biçimine göre) biçimlendirilmiş bir dize döndürür:

$review_time = $rrc_worksheet->Range("C30")->Text;

EDIT: hücre henüz doğru biçime sahip değilse, size Text özelliği (denenmemiş) okumadan önce biçimini değiştirebilirsiniz:

$rrc_worksheet->Range("C30")->Select();
$rrc_app->Selection->NumberFormat = "hh:mm:ss";
$review_time = $rrc_worksheet->Range("C30")->Text;

Format () bir Visual Basic function gibi görünüyor. Sizinle iletişim Excel COM nesnesi atlatmamı mutlaka sizin için geçerli değildir - bu nesne yere ilan sadece. Bir COM nesnesi için konuşurken VB fonksiyon yelpazesi PHP içine otomatik olarak alınmaz.

Deneyebilirsiniz $rrc_app->Format()?

Hiçbir şey işe yaramazsa, ben zaman değeri (Ben burada SO öğrenebilirsiniz eminim) açılımı ne bulmaktan ve PHP dönüştürerek öneririz.