[PHP] Excel Datei einlesen über COM (vllt einfach!)



  • hi,

    ich möchte daten aus einer excel-datei importieren (liegen so vor, kann man nix machen, muss automatisch gehen). ich dachte erst daran, die datei irgendwie binär zu lesen und das dann im script zu interpretieren. 😉 aber es geht tatsächlich einfacher. nur dass ichs halt nicht hinbekomm. (über COM, hab davon keine ahnung 😕 ):

    $AdoDB=new COM('ADODB.Connection') or die('! ADODB.Connection');
    $AdoDB->Provider='Microsoft.Jet.OLEDB.4.0';
    $AdoDB->Properties('Extended Properties')->Value="Excel 8.0";// <-- geht das so?
    $AdoDB->Open('H:\testP.xls') or die('! Open'); // <-- script-ausführung endet hier
    /*$AdoDB->Open('Provider=Microsoft.Jet.OLEDB.4.0'.
    ';Data Source=H:\testP.xls'.
    ';Extended Properties="Excel 8.0;HDR=No"') or die('! Open');*/
    $rs = $AdoDB->execute("SELECT * FROM [Mappe1$]");
    while(!$rs->EOF)
    {
    	echo '<pre>'.print_r($rs->fields,true).'</pre>';
    	$rs->movenext();
    }
    $rs->close();
    $AdoDB->close();
    

    führt zu => "! Open" 😞

    kennt sich da vllt jemand aus? oder sieht gleich irgend einen fehler (manchmal is man ja bei seinem code blind) 🤡

    infos:
    MS ExcelADO <-- ASP / VB-Script, ich hab versucht das nach php zu portieren
    ADO <-- braucht man nich, aber ExcelADO basiert darauf, wie ich das verstehe



  • habs. 😋 (endlich!)

    $AdoDB=new COM('ADODB.Connection');
    $AdoDB->Open('Driver={Microsoft Excel Driver (*.xls)}; Dbq=H:/testP.xls;');
    $qry=$AdoDB->Execute('SELECT * FROM [Mappe1$]');
    echo '<table><tr>';
    $n=intval($qry->Fields->Count);
    for($i=0;$i<$n;$i++)
    {
    	echo '<th>'.($qry->Fields->Item($i)->Name).'</th>';
    }
    echo '</tr>';
    while(!$qry->EOF)
    {
    	echo '<tr>';
    	for($i=0;$i<$n;$i++)
    	{
    		echo '<td>'.($qry->Fields->Item($i)->Value).'</td>';
    	}
    	echo '</tr>';
    	$qry->MoveNext();
    }
    echo '</table>';
    

    gib noch mehr möglichkeiten, aber die geht erstmal

    nacht!
    lw


Anmelden zum Antworten