Inhalt einer xls in eine .txt inc. Kopfzeile und festen Daten
Hallo Forum,
da ich hier schon sehr guter Erfahrungen gemacht habe und auch viel Unterstützung
bekomme wende ich mich wieder an euch und denke es ist für euch ein klax.
Ich komm mal gleich auf dem Punkt
ich bekomme vom Kunden eine Tabell mit dem Inhalt
Artikelnummer = 32 und 441 im Beispiel
Menge = 3 und 17 im Beispiel
gans Simpel also 2 Spalten
Artikelnummer | Menge
32 | 3
441 | 17
Ich brauche jetzt die Zahlen in eine .txt (Bestellung vom Kunden.txt)
,dazu aber einen variabelen Wert (Couter),fixe Daten und eine Kopfzeile
Kopfzeile= "K;Bestellung vom Kunden;22694"
Fixer Wert= "D"
variabeler Wert = 1 2 3 4 usw. (Counter)
Artikelnummer = 32 und 441 im Beispiel
Menge = 3 und 17 im Beispiel
und zum Schluss ein "Ja"
Wichtig sind die ";" hinter jedem Wert.
Hier ein Beispiel wie es in der .txt aussehen muss.
K;Bestellung vom Kunden;22694;
D;1;32;3;Ja;
D;2;441;17;Ja;
Ich hoffe ich hab es ordentlich beschrieben und ihr habt mich verstanden.
Vielen Dank schon einmal im Vorraus für eure Antworten.
da ich hier schon sehr guter Erfahrungen gemacht habe und auch viel Unterstützung
bekomme wende ich mich wieder an euch und denke es ist für euch ein klax.
Ich komm mal gleich auf dem Punkt
ich bekomme vom Kunden eine Tabell mit dem Inhalt
Artikelnummer = 32 und 441 im Beispiel
Menge = 3 und 17 im Beispiel
gans Simpel also 2 Spalten
Artikelnummer | Menge
32 | 3
441 | 17
Ich brauche jetzt die Zahlen in eine .txt (Bestellung vom Kunden.txt)
,dazu aber einen variabelen Wert (Couter),fixe Daten und eine Kopfzeile
Kopfzeile= "K;Bestellung vom Kunden;22694"
Fixer Wert= "D"
variabeler Wert = 1 2 3 4 usw. (Counter)
Artikelnummer = 32 und 441 im Beispiel
Menge = 3 und 17 im Beispiel
und zum Schluss ein "Ja"
Wichtig sind die ";" hinter jedem Wert.
Hier ein Beispiel wie es in der .txt aussehen muss.
K;Bestellung vom Kunden;22694;
D;1;32;3;Ja;
D;2;441;17;Ja;
Ich hoffe ich hab es ordentlich beschrieben und ihr habt mich verstanden.
Vielen Dank schon einmal im Vorraus für eure Antworten.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 185474
Url: https://administrator.de/contentid/185474
Ausgedruckt am: 23.11.2024 um 00:11 Uhr
11 Kommentare
Neuester Kommentar
Aloha,
ohne csv werde ich zur Sau nun, zumindest batch, wenn man ihr keinen vbs-inliner reindrücken möchte.
Nachfrage: Kopfzeile - Woher soll die Nummer genommen werden, als Eingabe oder kann die irgendwo ausgelesen werden?
Stehen
edit: code gelöscht, untere codes werden fortan genutzt
Soll die Datei eigentlich per drag&drop bearbeitet werden oder automatisch die neueste in einem Verzeichnis oder wie oder was?
greetz André
edit: Ah, mal der Spaß mit drag&drop der .xls (immer noch ausgehend, dass die .xls wie folgt aussieht
Dazu erst einmal
als z.B. convert_xls_csv.vbs speichern
und dann mit
den Rest verarbeiten lassen ... (noch immer mit der Nummer als Eingabe, bis der TE sich mal wieder meldet ^__^)
Dazu einfach die .xls auf die .bat (bzw. cmd) ziehen
ohne csv werde ich zur Sau nun, zumindest batch, wenn man ihr keinen vbs-inliner reindrücken möchte.
Nachfrage: Kopfzeile - Woher soll die Nummer genommen werden, als Eingabe oder kann die irgendwo ausgelesen werden?
Stehen
Artikelnummer
und Menge
in der Datei vom Kunden in Zeile 1? Dein Beispiel ist unklar.edit: code gelöscht, untere codes werden fortan genutzt
Soll die Datei eigentlich per drag&drop bearbeitet werden oder automatisch die neueste in einem Verzeichnis oder wie oder was?
greetz André
edit: Ah, mal der Spaß mit drag&drop der .xls (immer noch ausgehend, dass die .xls wie folgt aussieht
Artikelnummer|Menge
1234|1
23456|2
Dazu erst einmal
Set objArgs = WScript.Arguments
For I = 0 to objArgs.Count - 1
FullName = objArgs(I)
FileName = Left(objArgs(I), InstrRev(objArgs(I), ".") )
Set objExcel = CreateObject("Excel.application")
set objExcelBook = objExcel.Workbooks.Open(FullName)
objExcel.application.visible=false
objExcel.application.displayalerts=false
objExcelBook.SaveAs FileName & "csv", 23
objExcel.Application.Quit
objExcel.Quit
Set objExcel = Nothing
set objExcelBook = Nothing
Next
und dann mit
@echo off & setlocal enabledelayedexpansion
REM Konvertierung
set "csv=E:\Skripte\convert_xls_csv.vbs"
cscript //nologo "%csv%" %1
pause
REM Bearbeitung
set "out=E:\Skripte\Kunden.txt"
set "cnt=0"
echo Bitte geben Sie die Nummer ein:
set /p "num=
>"%out%" echo K;Bestellung vom Kunden;%num%;
for /f "usebackq tokens=1,2 delims=," %%s in ("%~dpn1.csv") do (
set /a "cnt+=1"
>>"%out%" echo D;!cnt!;%%s;%%t;ja;
)
pause
Dazu einfach die .xls auf die .bat (bzw. cmd) ziehen
Zitat von @Underdog81:
Ja die .xls des Kunden hat nur als Inhalt die Zahlen der Artikelnummer und Menge
Gut, meine Frage war zwar anders und es würde jetzt nein heißen aber ...Ja die .xls des Kunden hat nur als Inhalt die Zahlen der Artikelnummer und Menge
Ich werde gleich mal probieren, aber leider schnalle ich nicht
was du mir da geschrieben hast ich will aus einer .xls eine .txt machen.
Super und ich will Haarshampoo ... Dass du die Skripte nicht verstehst, OK aber dass du die Nachfragen auf deine Vorgaben nicht verstehst ... nunja ... was genau verstehst du denn nicht?was du mir da geschrieben hast ich will aus einer .xls eine .txt machen.
ich würde dir ja gerne die Dateien hochladen aber ich finde die Funktion hier nirgends.
Gibt es nicht, wozu auch.schön wäre ein .vbs das es alles macht, wenn man es ausführt.
Ja, schön wäre so einiges, allerdings beschränkt sich zumindest mein Wissen eher auf batch als auf visualbasic-ZeugsIch kann die vbs auch in bat einbuttern, macht keinen Unterschied ... zumal momentan außer c&p nicht viel zu tun ist
greetz André
Zitat von @Underdog81:
ich versteh eher batch als vbs....wenn ich das convert_xls_csv.vbs sehe sagt mir das alles so gut wie nichts
ich versteh eher batch als vbs....wenn ich das convert_xls_csv.vbs sehe sagt mir das alles so gut wie nichts
Mir auch nicht ok, das Meiste erklärt sich von selbst, google war mein Freund und getestet habe ich's auch wie alles, was ich fabriziere daher ist sogar noch die erste Pause nach der Konvertierung enthalten.
Wenn ich 'ne .xls erstelle (frisch) und Zahlen in A1, A2, A3, B1, B2, B3 reinhaue und speichere - diese dann auf die .bat ziehe, dann bekomme ich eine .csv die (wahrscheinlich Einstellungssache?) bei mir Excel 2007 defaultmäßig so aussieht: A1+B1=A1(A1,B1) A2+B2=A2(A2,B2) etc.
452,2
564,3
21,1
delims=,
gesetzt, ist ja nun egal, ob da nun als reiner Text mit ,
oder ;
ausgelesen wird.Tja und am Schluss sieht dann die Kunden.txt so aus wie gewollt.
Wenn du nicht weißt, wo es klemmt, ändere Zeile 1 der batch in
echo on
.greetz André