Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Inhalt einer xls in eine .txt inc. Kopfzeile und festen Daten

Frage Entwicklung Batch & Shell

Mitglied: Underdog81

Underdog81 (Level 1) - Jetzt verbinden

25.05.2012, aktualisiert 10:35 Uhr, 3009 Aufrufe, 11 Kommentare

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.
Mitglied: hajowe
25.05.2012 um 10:18 Uhr
Hallo underdog.

Excel Datei öffnen
Dann speichern unter csv

Gruß
Bitte warten ..
Mitglied: Underdog81
25.05.2012 um 10:22 Uhr
Zitat von hajowe:
Hallo underdog.

Excel Datei öffnen
Dann speichern unter csv

Gruß


Hallo,

Leider habe ich dann immernoch keine Kopfzeile, die Fixen Daten und den Counter nicht in der .txt sondern nur die Angabe Artikelnummer und Menge.
Bitte warten ..
Mitglied: Skyemugen
25.05.2012, aktualisiert um 15:53 Uhr
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 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
01.
Set objArgs = WScript.Arguments 
02.
For I = 0 to objArgs.Count - 1 
03.
 
04.
    FullName = objArgs(I) 
05.
    FileName = Left(objArgs(I), InstrRev(objArgs(I), ".") ) 
06.
 
07.
    Set objExcel = CreateObject("Excel.application") 
08.
    set objExcelBook = objExcel.Workbooks.Open(FullName) 
09.
 
10.
    objExcel.application.visible=false 
11.
    objExcel.application.displayalerts=false 
12.
 
13.
    objExcelBook.SaveAs FileName & "csv", 23 
14.
 
15.
    objExcel.Application.Quit 
16.
    objExcel.Quit    
17.
 
18.
    Set objExcel = Nothing 
19.
    set objExcelBook = Nothing 
20.
 
21.
Next
als z.B. convert_xls_csv.vbs speichern
und dann mit
01.
@echo off & setlocal enabledelayedexpansion 
02.
REM Konvertierung 
03.
set "csv=E:\Skripte\convert_xls_csv.vbs" 
04.
cscript //nologo "%csv%" %1 
05.
pause 
06.
REM Bearbeitung 
07.
set "out=E:\Skripte\Kunden.txt" 
08.
set "cnt=0" 
09.
echo Bitte geben Sie die Nummer ein: 
10.
set /p "num= 
11.
>"%out%" echo K;Bestellung vom Kunden;%num%; 
12.
for /f "usebackq tokens=1,2 delims=," %%s in ("%~dpn1.csv") do ( 
13.
	set /a "cnt+=1" 
14.
	>>"%out%" echo D;!cnt!;%%s;%%t;ja; 
15.
16.
pause
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
Bitte warten ..
Mitglied: Underdog81
25.05.2012 um 12:08 Uhr
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.
ich würde dir ja gerne die Dateien hochladen aber ich finde die Funktion hier nirgends.
schön wäre ein .vbs das es alles macht, wenn man es ausführt.
Bitte warten ..
Mitglied: Skyemugen
25.05.2012, aktualisiert um 14:16 Uhr
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 ...
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?
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-Zeugs

Ich kann die vbs auch in bat einbuttern, macht keinen Unterschied ... zumal momentan außer c&p nicht viel zu tun ist

greetz André
Bitte warten ..
Mitglied: Underdog81
25.05.2012 um 14:38 Uhr
Hi André,

Ich bin jetzt erst dazu gekommen es auszuprobieren.
Ich tüftel noch etwas rum, aber deine Dateien sind bestimmt das richtige.
Ich merkte eben erst, daß bei mir das .vbs die csv leer lässt. wieso kann ich dir noch nicht sagen aber ich bekomme schon mal die Kopfzeile in der Endtatei :D
Was ich super finde ist deine Abfrage nach der Nummer (Kundennummer)
ich danke dir schon mal für die Hilfe.

ich versteh eher batch als vbs....wenn ich das convert_xls_csv.vbs sehe sagt mir das alles so gut wie nichts
Bitte warten ..
Mitglied: Skyemugen
25.05.2012, aktualisiert um 15:43 Uhr
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

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
also erst einmal nicht das, was ich erwartet hatte A1;B1 A2;B2 etc. aber deswegen habe ich auch die 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é
Bitte warten ..
Mitglied: Underdog81
25.05.2012 um 15:45 Uhr
Ich hab es hinbekommen....
Hab alles nochmal von Anfan an gemacht und siehe da es geht....
Was mir jetzt aufgefallen ist, daß der Couter nicht zählt.
Hier steht immer 1 und das ist die Anganbe der Position im Auftrag.
Bitte warten ..
Mitglied: Skyemugen
25.05.2012 um 15:54 Uhr
Stimmt, kurios, naja gut, dann flog das setlocal und endlocal wieder aus der Schleife und landete in Zeile 1 ... bei meinem ersten Skript heute hatte das lustigerweise in der Schleife funktioniert aber irgendwie ... Freitag eben ;D
Bitte warten ..
Mitglied: Underdog81
25.05.2012 um 16:22 Uhr
Yeaaaaa Perfeeekt

Ich danke dir und wünsche ein schönes sonniges Wochenende und schöne Pfingsten!!
Bitte warten ..
Mitglied: Underdog81
05.06.2012 um 14:27 Uhr
Hallo ich hab noch einen weiteren Happen, den ich nur duch google nicht lösen kann

Im grunde ist es die gleiche Geschichte wie ich sie schon geschrieben habe.
Doch der Aufbau der Exel Datei ist komplexer und es werden hier schon einige Daten angegeben.

Die Exel beinhaltet die Nummer schon in 3B und somit ist die Abfrage überflüssig.
Ausserdem fängt die Auflistung der Artikelnummern in Zeile 31 erst an.
dazu kommt hinzu, daß der Produktname mit aufgeführt wird an zweiter stelle.
Beispiel:
Artikelnummer| Produktname | Menge
32 | Hundehalsband | 3
441 | Hundeleine | 17

In den anderen Zeilen sind Infos die mit in der Datei stehen müssen für die Arcivierung.

Mein Wunschtraum ist es...... wie erkläre ich es am besten?
Die datei landet im Ordner und das Script erkennt es und fängt an zu arbeiten.
Legt einmal die Kunden.txt an und verschiebt die originale (schon bearbeitete Exel) in einen unterordner (Archiv).
Aber ich glaube das ist zuviel ....
Ich würde es nie hinbekommen.... oder erst nach laaaaaanger zeit.

Vielen Dank für eure Antworten.

Gruß Underdog81
Bitte warten ..
Neuester Wissensbeitrag
Heiß diskutierte Inhalte
LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (18)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...