Excel XLSX in XML per Batch, Skript oder Kommandozeilenprogramm?
Hallo zusammen,
solch eine Excel XLSX-Datei hätte ich gerne als XML-Datei. Ich habe schon rauf und runter gegoogelt und viele Dinge probiert. Kostenpflichtige Software würde ich gerne vermeiden.
Ebenso den Zwischenweg über CSV.
Mir ist klar, dass XLSX ein verpacktes Format ist. Wenn ich es entpacke, erhalte ich diverse XML-Dateien.
Die Struktur ist jedoch nicht logisch und somit nicht zu gebrauchen.
Manche Software liefert mir XML mit Tonnen an Formatierungsinformationen. Auch nutzlos.
Ich benötige final eine Lösung, die ich per Batch Skript ansteuern kann.
So ähnlich: (nur ein Beispiel, abgeändert von einer funktionierenden PDF zu Text Lösung)
Freue mich auf Tipps!
solch eine Excel XLSX-Datei hätte ich gerne als XML-Datei. Ich habe schon rauf und runter gegoogelt und viele Dinge probiert. Kostenpflichtige Software würde ich gerne vermeiden.
Ebenso den Zwischenweg über CSV.
Mir ist klar, dass XLSX ein verpacktes Format ist. Wenn ich es entpacke, erhalte ich diverse XML-Dateien.
Die Struktur ist jedoch nicht logisch und somit nicht zu gebrauchen.
Manche Software liefert mir XML mit Tonnen an Formatierungsinformationen. Auch nutzlos.
Ich benötige final eine Lösung, die ich per Batch Skript ansteuern kann.
So ähnlich: (nur ein Beispiel, abgeändert von einer funktionierenden PDF zu Text Lösung)
set in="C:\Tool\v100\Scripts\Batch\check_N30367_EN.XLSX"
set out="C:\Tool\v100\Scripts\Batch\check_N30367_EN.CSV"
C:\Tool\v100\Scripts\Batch\[hierkommtdielösunghin].exe %out% %in%
Freue mich auf Tipps!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 4632181480
Url: https://administrator.de/contentid/4632181480
Ausgedruckt am: 25.11.2024 um 07:11 Uhr
8 Kommentare
Neuester Kommentar
Moin,
Da nichts passendes gefunden?
https://www.google.de/search?q=powershell+convert+xlsx+to+xml
Edit: wenn obiger Screenshot im übrige dein XLSX ist, da hätte ich als Programmier-/ Skriptsprache schon kein Bock… da ist ja keine systematische Struktur erkennbar, auf die man aufbauen könnte. Da musst du also ohnehin manuell Hand anlegen.
Da nichts passendes gefunden?
https://www.google.de/search?q=powershell+convert+xlsx+to+xml
Edit: wenn obiger Screenshot im übrige dein XLSX ist, da hätte ich als Programmier-/ Skriptsprache schon kein Bock… da ist ja keine systematische Struktur erkennbar, auf die man aufbauen könnte. Da musst du also ohnehin manuell Hand anlegen.
Hallo,
oh gott ....
Das ist eine nachgebaute Eingabe-/ Ausgabe-Maske. Excel to GUI hät ich fast gesagt. Die Daten müssen ja aber irgendwo her kommen. Logik ist da so eine Sache. Durch IDs, Schlüssel etc. wird dass schon so passen. Mitunter wird auch direkt ODBC als DataSource angezapft. Das erkennt man aber auf einen Foto nicht....
Man kann mehrere Daten-Quelle paralle einlesen und mit den jeweiligen Objekten dann spielen und logische Verbindungen aufbauen.
So mit der Excel Maske ist es echt sehr unschön... Man kann mit Powershell Excel Zellen formatieren u.ä. Hab noch nie damit Eingaben "simuliert" und Ergebnis betrachtet. Müsste aber auch gehen. Wäre aber nicht sonderlich performant! Man setzt quasi Excel auf versteckt und macht im Hintergrund die Eingaben. Blatt für Blatt dann meinetwegen das als XML oder was auch immer wegschreiben. Wäre aber durchaus machbar.
Vlt. solltest du erstmal unter "Daten" schauen, was an Verbindungen dort angegeben ist. Die Daten kommen ja irgendwo her....
PDF2TEXT arbeitet auch Seitenweise. Da muss man auch vieles berücksichtigen. Zumindest wenn die PDF umfangreicht ist. Ähnlich lässt es sich auf Excel hier übertragen. Wir sehen ein Layout. Die Bezüge dahinter bleiben verborgen.
Da ist doch mehr ein ERP System o.ä.? Gibt es da keinen Export?
So einfach wie du dir das vorstellst geht es vermutlich nur, wenn man Maske für Maske mit PS ansteuert, Die richtigen Felder rauspickt und es in XML reinlaufen lässt.
Will man - wie es normal ist - mit Datensätzen arbeiten bleibt nur:
- Reiter "Daten"
-- ALLE Datenverbindung einmal notieren
- VBA? In Visualbasic ggf. schauen ob dort was berechnet wird. Insbesondere Werte, die direkt in Verbindung mit den Datenquellen stehen. Sowas wie ID o.ä.
Dann hat man - wenn es gut läuft - untereinander viele viele Datensätze. Auch über versch. Datenbanken hinweg. Die müsste man dann noch in einklang bringen .JOIN, WHERE - Beziehungen aufbauen.
Das Dings da, was dann am Ende raus kommt kannst du dann einfach in XML exportieren....
Struktur, u.ä, müssen aber bekannt sein. Sonst wird es ein Raten. Oder man muss einzeln mit PS "durchbättern" und die Werte aus den Zellen rauskopieren.
oh gott ....
Das ist eine nachgebaute Eingabe-/ Ausgabe-Maske. Excel to GUI hät ich fast gesagt. Die Daten müssen ja aber irgendwo her kommen. Logik ist da so eine Sache. Durch IDs, Schlüssel etc. wird dass schon so passen. Mitunter wird auch direkt ODBC als DataSource angezapft. Das erkennt man aber auf einen Foto nicht....
Man kann mehrere Daten-Quelle paralle einlesen und mit den jeweiligen Objekten dann spielen und logische Verbindungen aufbauen.
So mit der Excel Maske ist es echt sehr unschön... Man kann mit Powershell Excel Zellen formatieren u.ä. Hab noch nie damit Eingaben "simuliert" und Ergebnis betrachtet. Müsste aber auch gehen. Wäre aber nicht sonderlich performant! Man setzt quasi Excel auf versteckt und macht im Hintergrund die Eingaben. Blatt für Blatt dann meinetwegen das als XML oder was auch immer wegschreiben. Wäre aber durchaus machbar.
Vlt. solltest du erstmal unter "Daten" schauen, was an Verbindungen dort angegeben ist. Die Daten kommen ja irgendwo her....
PDF2TEXT arbeitet auch Seitenweise. Da muss man auch vieles berücksichtigen. Zumindest wenn die PDF umfangreicht ist. Ähnlich lässt es sich auf Excel hier übertragen. Wir sehen ein Layout. Die Bezüge dahinter bleiben verborgen.
Da ist doch mehr ein ERP System o.ä.? Gibt es da keinen Export?
So einfach wie du dir das vorstellst geht es vermutlich nur, wenn man Maske für Maske mit PS ansteuert, Die richtigen Felder rauspickt und es in XML reinlaufen lässt.
Will man - wie es normal ist - mit Datensätzen arbeiten bleibt nur:
- Reiter "Daten"
-- ALLE Datenverbindung einmal notieren
- VBA? In Visualbasic ggf. schauen ob dort was berechnet wird. Insbesondere Werte, die direkt in Verbindung mit den Datenquellen stehen. Sowas wie ID o.ä.
Dann hat man - wenn es gut läuft - untereinander viele viele Datensätze. Auch über versch. Datenbanken hinweg. Die müsste man dann noch in einklang bringen .JOIN, WHERE - Beziehungen aufbauen.
Das Dings da, was dann am Ende raus kommt kannst du dann einfach in XML exportieren....
Struktur, u.ä, müssen aber bekannt sein. Sonst wird es ein Raten. Oder man muss einzeln mit PS "durchbättern" und die Werte aus den Zellen rauskopieren.
Da ist Handarbeit angesagt. Außer du willst dir die Mühe machen das einmalig programmatisch in ein Schema zu pressen, dann musst du aber auch definieren welche Felder wie in die XML wandern sollen. Voll automatisch ohne initiale investierte Arbeit wirst du das definitiv nicht so hinbekommen das es so ist wie du dir das wünschst, also ran an den Speck.
[hierkommtdielösunghin].exe
Bei dem Aufbau, Wunschdenken, ohne Arbeit zu investieren Zitat von @4400667902:
Voll automatisch ohne initiale investierte Arbeit wirst du das definitiv nicht so hinbekommen das es so ist wie du dir das wünschst, also ran an den Speck.
Voll automatisch ohne initiale investierte Arbeit wirst du das definitiv nicht so hinbekommen das es so ist wie du dir das wünschst, also ran an den Speck.
Einzige Chance dann die Felder einzeln mit PS einlesen und verwursten. So wie man es sieht. Man steuert nur das Excel Blatt fern. Der Vorteil - da fix Felder - ist dann 1:1 das Ergebnis was man sieht
Am einfachste wäre sowas wie MS-SQL Source. Warum? Da kann man die Queries im SQl Profiler mitschneiden und hat rasch die Ergebnisse. Einschl. JOIN u.ä.
https://www.c-sharpcorner.com/article/read-excel-file-using-psexcel-in-p ...
https://stackoverflow.com/questions/19211632/read-excel-sheet-in-powersh ...
So was ist das? Excel wird im Hintergrund aufgerufen. Teils wird auch was gesucht und gefunden. Wenn die Felder wie hier fix sind würde es reichen Zelle A4 zu lesen und den Inhalt dann wegzuschreiben.
http://woshub.com/read-write-excel-files-powershell/
Man kann jedes Element ansprechen. Auch die einzelnen Blätter, falls die Mappe mehr als eins hat.
Warum einfügen? Du hast nicht geschrieben wie die Tabelle getriggert wird! Ob man Datum ändert oder bei jedem Öffnen die Werte hat, die man exportieren will. Letzteres wäre das einfachste, da ja alles schon da ist. Wäre dann nur stumpfes lesen aller Zellen.
Der Vorteil ist, dass du gleich für CSV oder XML die Daten so hast, wie du sie brauchst.
https://virtualengine.co.uk/updating-and-writing-xml-files-with-powershe ...
Es gibt zig Tutorials! Da kann man sich austoben.
VisualBasic wäre auch eine Mögichkeit. Refresh im Intervall und extrahieren der Werte.
Mir fallen da schon Möglichkeiten der Automatisierung ein.
Nur soll dir Excel und XML nicht weglaufen. Bei PS kann m an Error Handling einfach einbauen. Auch E-Mail im Falle von Fehlern und solche Dinge. Log schreiben.
Klar geht das automatisch, => aber erst nach der einmal geleisteten Arbeit . So wie er sich das vorstellt, Lade mit irgendwo ne EXE und die macht das dann von selbst is nich. Grundlegende Programmierkenntnisse sollten da schon vorhanden sein, wenn nicht sollte er jemanden beauftragen.
Zitat von @4400667902:
Grundlegende Programmierkenntnisse sollten da schon vorhanden sein, wenn nicht sollte er jemanden beauftragen.
Grundlegende Programmierkenntnisse sollten da schon vorhanden sein, wenn nicht sollte er jemanden beauftragen.
Und Kenntnisse in Englisch... Allein EAN Nummer etc. Wir kennen es ja von deutscher Sofware: Art, Stamm, Mat-Stamm, AUKO, AUPO.
Das ist wirklcih ein Kulturschock. Ältere deutsche Prrogramme - zumindest sind sie mir oft begegnet - waren da recht ähnlich.
AUKO, AUPO - Ka woher das kommt. Einige meinen von VW? Oder haben die alle beim gleichen gelernt? Hab bis heute noch keine Antwort gefunden. Mein Kollege meinte war mal von VW-IT inspiriert. Kopf und Pos alleine. Schon sehr auffällig.