Manchmal hat man in einer Excel-Tabelle eine oder mehrere Spalten mit Internet-Adressen (URLs) deren Gültigkeit man überprüfen will, da viele Adressen sich doch schnell ändern. Dh. ist die Adresse noch erreichbar oder ist eine ungültige Adresse (Broken Links) eingegeben. Man könnte nun einen VB-Macro schreiben der das tut, oder aber das de.wenzlaff.linkchecker Programm starten, das eine Spalte in einer Excel-Datei automatisch validiert und alle nicht erreichbaren bzw. falschen Adressen ausgibt. So kann mit einen Aufruf die ganze Datei überprüft werden.
Das wollen wir mal an einem Beispiel auf einem Raspberry Pi ausführen. Das würde analog natürlich auch auf Windows oder einem Mac laufen.
Wir haben diese Excel Testdatei. Die 3. Spalte, also Spalte C enthält Internet-Adressen die alle überprüft werden sollen. Alle anderen Spalten sind nicht relevant. Die Excel-Datei wir auch nicht verändert.
Voraussetzung ist, das auf dem Rechner Java installiert ist. Also ein java -version muss eine gültige Version >= 8 liefern und wer den aktuellen SNAPHOT holt, braucht mind. Java 11:
Folgende drei Schritte sind nötig nun nötig.
1. Das Programm downloaden.
2. Auspacken und
3. starten.
Hier nun die Details:
Wir holen uns das Programm de.wenzlaff.linkchecker in ein neues Verzeichnis:
# Verzeichnis anlegen
mkdir excel-link-checker
cd excel-link-checker
# Das Programm aus dem Blog linkchecker-0.0.4 im Zip-Archive holen oder über obigen Link downloaden.
wget http://blog.wenzlaff.de/wp-content/uploads/2020/02/linkchecker-0.0.4.zip
# Zip-Archive auspacken
unzip linkchecker-0.0.4.zip
# Im Archiv sind das Programm und eine Excel Testdatei. In der Testdatei wollen wir die zweite Spalte (Spalten zählen ab 0) validieren
# Dazu rufen wir Java auf mit dem -jar Befehlt und dem geladenen jar. Dann kommt als erster Parameter die Spalten Nr. und als letztes der Excel-Dateiname
java -jar de.wenzlaff.linkchecker-0.0.4-SNAPSHOT-jar-with-dependencies.jar 2 test-excel.xlsx
Das Ergebniss, mit den drei falschen Adressen wird ausgegeben:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Lese alle Zeilen aus der Excel Datei test-excel.xlsx Validiere die 2. Spalte in der Excel-Datei mit Namen: C Anzahl der Spalten der Tabelle: 3 Verwende Blatt wenzlaff.de Eingelesen Zeile [id=Nr., Internet] Eingelesen Zeile [id=1, http://www.kleinhirn.eu] Eingelesen Zeile [id=2, http://www.diese-d-gibt-es-wirklich-nicht-777.de] Eingelesen Zeile [id=3, http://www.wenzlaff.info] Eingelesen Zeile [id=4, httt://falsche.url] Eingelesen Zeile [id=5, http://www.wenzlaff.de] 6 gelesene Zeilen aus der Tabelle test-excel.xlsx Checke nun den Online Status aller URLs ... Fehler Nr. 1 Fehler no protocol: Internet in Zeile: Zeile [id=Nr., Internet] mit URL: null Fehler Nr. 2 ZeilenId: 2 ERROR, , www.diese-d-gibt-es-wirklich-nicht-777.de Fehler Nr. 3 Fehler unknown protocol: httt in Zeile: Zeile [id=4, httt://falsche.url] mit URL: null Online Check abgeschlossen. |
Was fehlt noch? Weitere Funktion erwünscht? Gern anregungen an meine E-Mail oder per Pull Request auf Github. Das Github Projekt enthält auch den ganzen Java Quellcode.