mirror of
https://gitlab.com/harald.mueller/aktuelle.kurse.git
synced 2024-10-19 09:55:03 +02:00
70 lines
2.3 KiB
PHP
70 lines
2.3 KiB
PHP
<?
|
|
function exportToExcel($tableName, $columnNames, $attributes) {
|
|
//Sind alle Parameter gesetzt?
|
|
if(isset($tableName) && isset($columnNames) && isset($attributes)){
|
|
//Verbindung zu Excel herstellen
|
|
$excel = new COM("Excel.application") or Die ("Could not connect to Excel.Application");
|
|
|
|
//Pfad zum Excel-File das geöffnet werden soll.
|
|
$workbook="Y:\\xchange/grp2/migrations-applikation/excel import,export/vba-export.xls";
|
|
|
|
//öffnen des Files im Excel
|
|
$workbook = $excel->Workbooks->Open($workbook);
|
|
|
|
//Setze das Application-Window auf true, Excel wird sichtbar
|
|
$excel->Application->Visible = 1;
|
|
|
|
//Dieser try wird gebraucht um die Exception bei $excel->Sheets($tableName)
|
|
//abzufangen, die auftritt wenn es noch kein Sheet mit dem Namen gibt.
|
|
//anmerkung: schönere Variante wäre eine Methode die abcheckt ob ein Sheet existiert
|
|
try{
|
|
$sheet = $excel->Sheets($tableName);
|
|
echo "Sheet existiert bereits. Das Sheet >>".$sheet->Name."<< wird gelöscht...<br>";
|
|
$sheet->Delete();
|
|
echo "<br>Sheet wurde gelöscht.";
|
|
} catch (com_exception $exception){
|
|
//do nothing
|
|
//fängt die Exception-Ausgabe ab. Hier weiss ich dass kein Sheet mit
|
|
//dem Namen gefunden wurde, somit muss auch nichts gelöscht werden.
|
|
}
|
|
|
|
//Ein leeres Sheet wird angehängt
|
|
$sheet = $excel->Worksheets->Add();
|
|
|
|
//Das sheet wird umbenannt in den Tabellenname
|
|
$sheet->Name = $tableName;
|
|
|
|
//Einfügen der Attribute
|
|
for ($i = 0; $i < count($attributes); $i++)
|
|
{
|
|
for ($index = 0; $index < count($attributes[$i]); $index++)
|
|
{
|
|
//Zugriff auf Cell, cell wird zwischengespeichert
|
|
$cell = $sheet->Cells($index+1,$i+1);
|
|
|
|
//Neuer Inhalt wird gesetzt
|
|
$cell->value = $attributes[$i][$index];
|
|
}
|
|
}
|
|
echo "<br><br>Daten erfolgreich ins Excel exportiert!";
|
|
//Workbook wird gespeichert
|
|
$ret = $workbook->save();
|
|
|
|
//Wenn erfolgreich gespeichert ...
|
|
if($ret == 1){
|
|
// ... schliessen des Workbooks und des Excels.
|
|
$workbook->close();
|
|
$excel->Quit();
|
|
unset($workbook);
|
|
unset($excel);
|
|
} else {
|
|
echo "ERROR: Schliessen des Dokumentes fehlgeschlagen. Dokument konnte nicht gespeichert werden.";
|
|
}
|
|
|
|
} else {
|
|
echo "ERROR: Nicht alle Variabeln übergeben!";
|
|
}
|
|
}
|
|
|
|
exportToExcel("test", array("a", "b", "c"), array("a1", "b2", "c3"));
|
|
?>
|