Hallo alle zusammen,
ich habe hier in den letzten Wochen viel gelesen, gestöbert, gelernt und erfragt. An dieser Stelle nochmals besten Dank für eure Hilfe.
Ich habe meine Visu fast fertig und werde sie euch in den nächsten Wochen vorstellen. Ich denke das ist das mindeste was man als „Rookie“ in Sachen IPS machen kann um wenigstens ein bisschen zurück zu geben.
Ich habe hier öfters gelesen das Interesse besteht eine Anbindung zu Excel zu haben um Daten zu schreiben oder zu lesen. Ich habe zwei Funktionen geschrieben die genau das machen. Die beiden Scripe sind nur Beispiel wie man eine Verbindung zu Excel erstellt. Sie beinhalten lediglich das lesen / schreiben einer Zelle. Das Script kann natürlich dementsprechend „ausgerollt“ werden.
aktualisiert am 09.11.2009 Schablone
Als erstes die Funktion „write_to_excel“
function write_to_Excel($filename, $Worksheet, $raw, $column, $string)
{
//Einbinden der COM-Klasse für Excel
$excel_app = new COM("Excel.application") or Die ("Did not connect");
//Kontrolle der Datei
if (file_exists($filename))
{
//öffnen einer bestehenden Excel-Datei
$Workbook = $excel_app->Workbooks->Open("$filename") or Die("Did not open $filename $Workbook");
}
else
{
//Sonst -> Meldung
echo "The file $filename does not exist";
//und neu anlegen
$Workbook = $excel_app->Workbooks->Add(); //neu
}
//zusammensetzen der Zelle
$cell = $column.$raw;
//Auswahl des Worksheet
$Worksheet = $Workbook->Worksheets($Worksheet);
//Aktivieren des Worksheet
$Worksheet->activate;
//Auswahl der Zelle
$excel_cell = $Worksheet->Range($cell);
//Aktivieren der Zelle
$excel_cell->activate;
//Schreiben der Stringinformation in die aktive Zelle
$excel_cell->value = $string;
//Kontrolle der Datei
if (file_exists($filename))
{
//Speichern der bestehenden Datei
$Workbook->Save;
}
else
{
//Speichern der neuen Datei
$Workbook->SaveAs($filename);
}
//Schliessen der Excel-Instanz und freigeben des Speichers
//Willi wichtig!!!
$Workbook->Close;
unset($Worksheet);
unset($Workbook);
$excel_app->Workbooks->Close();
$excel_app->Quit();
unset($excel_app);
}
Nun die Funktion „read_from_excel“
aktualisiert am 09.11.2009 Schablone
function read_from_Excel($filename, $Worksheet, $raw, $column)
{
//Kontrolle der Datei
if (file_exists($filename))
{
//Einbinden der COM-Klasse für Excel
$excel_app = new COM("Excel.application") or Die ("Did not connect");
//öffnen einer bestehenden Excel-Datei
$Workbook = $excel_app->Workbooks->Open("$filename") or Die("Did not open $filename $Workbook");
//Auswahl des Worksheets 1
$Worksheet = $Workbook->Worksheets($Worksheet);
//Aktivieren des Worksheet 1
$Worksheet->activate;
//zusammensetzen der Zelle
$cell = $column.$raw;
//Auswahl der Zelle
$excel_cell = $Worksheet->Range($cell);
//Aktivieren der Zelle
$excel_cell->activate;
//Lesen der Stringinformation aus der aktive Zelle
$string = $excel_cell->value;
//Schliessen der Excel-Instanz und freigeben des Speichers
//Willi wichtig!!!
$Workbook->Close;
unset($Worksheet);
unset($Workbook);
$excel_app->Workbooks->Close();
$excel_app->Quit();
unset($excel_app);
}
else
{
//Sonst -> Meldung
$string = "The file $filename does not exist";
}
//Ausgeben der Information
return $string;
}
Beispiel schreiben (Einbindung der Funktionen)
aktualisiert am 09.11.2009 Schablone
$filename = IPS_GetKernelDir()."meldungen\\ereignisse\\Test.xls";
$Worksheet = "Tabelle1"; //Option 1 über die Bezeichnung
$Worksheet = 1; //Option 2 über die Nummer
$raw = 10;
$column = "B";
$string = "Das ist ein Test";
write_to_Excel($filename, $Worksheet, $raw, $column, $string);
Beispiel lesen (Einbindung der Funktionen)
aktualisiert am 09.11.2009 Schablone
$filename = IPS_GetKernelDir()."meldungen\\ereignisse\\Test.xls";
$Worksheet = "Tabelle1"; //Option 1 über die Bezeichnung
$Worksheet = 1; //Option 2 über die Nummer
$raw = 10;
$column = "B";
$string = read_from_Excel($filename, $Worksheet, $raw, $column);
echo $string;
Noch eins zum Schluss
Ich bin PHP-Anfänger → Also lass gnade walten.
Ansonsten bin ich verheiratet. Das heisst → 100% Kritikfähig
Bis dann
Martin
aktualisiert am 09.11.2009 Schablone
PS: aktualisierte Funktion print_from_Excel
function print_from_Excel($filename, $Worksheet)
{
//Einbinden der COM-Klasse für Excel
$excel_app = new COM("Excel.application") or Die ("Did not connect");
//öffnen einer bestehenden Excel-Datei
$Workbook = $excel_app->Workbooks->Open("$filename") or Die("Did not open $filename $Workbook");
//Auswahl des Worksheets 1
$Worksheet = $Workbook->Worksheets($Worksheet);
//Aktivieren des Worksheet 1
$Worksheet->activate;
//Worksheet drucken
$Worksheet->PrintOut;
//für Leute die kein Geld
//für einen Print-Server haben (so wie ich)
IPS_Sleep(10);
//Schliessen der Excel-Instanz und freigeben des Speichers
//Willi wichtig!!!
$Workbook->Close;
unset($Worksheet);
unset($Workbook);
$excel_app->Workbooks->Close();
$excel_app->Quit();
unset($excel_app);
}
Beispiel drucken (Einbindung der Funktionen)
aktualisiert am 09.11.2009 Schablone
$filename = IPS_GetKernelDir()."meldungen\\ereignisse\\Test.xls";
$Worksheet = "Tabelle1"; //Option 1 über die Bezeichnung
$Worksheet = 1; //Option 2 über die Nummer
print_from_Excel($filename, $Worksheet);