Mailinglisten-Archive |
Hallo Liste, ich versuche gerade eine Excel Tabelle über die Com-Schnittstelle zu Importieren. Das funktioniert auch prima mit einer fest angegebenen Zeilen- und Spaltenanzahl. Da ich jedoch nicht weiss, wie breit und hoch die Tabelle ist, sollte dies 'automatisch' ausgelesen werden. In der MSDN Library hab ich die Methode 'ActiveCell.CurrentRegion.Select' gefunden. Nur leider sagt mir das irgendwie gar nix;) Kann mir da jemand weiterhelfen? Hier mein Beispielsscript: $xls = new COM('excel.application') or die('Fehler'); $workbook = dirname(__FILE__) . "\com.xls"; $wkb = $xls->application->Workbooks->Open($workbook) or Die ("Did not open"); $sheets = $wkb->Worksheets(1); // $sheets->Activate; // $demo = $sheets->CurrentRegion.Select; // Sollte eigentlich einen Tabellen Range liefern... $maxl=10;$maxc=10; <- das sollte automatisch ausgelesen werden.... for ($j=1; $j<=$maxl; $j++) { for ($i=1; $i<=$maxc; $i++) { $c = $sheets->Cells($j,$i); $c->activate; $tmp = $c->value; if (!is_integer($tmp) || (is_integer($tmp) && $tmp != 0)) $cell[$i][$j] = $c->value; else $cell[$i][$j] = NULL; } } $xls->application->ActiveWorkbook->Close("False"); $xls->Quit(); Gruss, Tobias.
php::bar PHP Wiki - Listenarchive