stefante
Goto Top

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)

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!
2022-11-14_16-17-19

Content-ID: 4632181480

Url: https://administrator.de/contentid/4632181480

Ausgedruckt am: 25.11.2024 um 07:11 Uhr

em-pie
em-pie 14.11.2022, aktualisiert am 15.11.2022 um 07:06:48 Uhr
Goto Top
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.
Crusher79
Crusher79 15.11.2022 um 10:58:22 Uhr
Goto Top
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.
4400667902
4400667902 15.11.2022 aktualisiert um 11:33:20 Uhr
Goto Top
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 face-big-smile
stefante
stefante 15.11.2022 um 11:39:21 Uhr
Goto Top
Danke euch schon mal. Dann gehe ich mal in mich...
Crusher79
Crusher79 15.11.2022 um 11:58:52 Uhr
Goto Top
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.

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 face-wink

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.
4400667902
4400667902 15.11.2022 aktualisiert um 12:03:30 Uhr
Goto Top
Klar geht das automatisch, => aber erst nach der einmal geleisteten Arbeit face-smile. 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.
Crusher79
Crusher79 15.11.2022 um 12:01:57 Uhr
Goto Top
Zitat von @4400667902:

Klar geht das automatisch, => aber erst nach der einmal geleisteten Arbeit face-smile. So wie er sich das vorstellt, Lade mit irgendwo ne EXE und die macht das dann von selbst is nich

Hmm, stimmt da war doch was....
Crusher79
Crusher79 15.11.2022 um 12:06:57 Uhr
Goto Top
Zitat von @4400667902:

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.