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