100 Excel Dokumente nach CSV exportieren



  • Hallo Leute.

    Ich habe 100 excel Dokumente und will diese alle in eine CSV datei exportieren. Die Struktur aller Excel Tabellen ist identisch. Es wäre auch OK, jede Excel Tabelle in eine eigene CSV Datei zu exportieren und ich schreib ein kleines Script, dass diese dann in eine große CSV Datei packt.

    Gibt es schon soetwas oder kann ich Excel per Commandline sagen, dass es die Datei nur exportieren soll? Ich könnte natürlich per COM Excel steuern, aber den Aufwand würde ich mir nicht gerne antun, sprich: wenn es einfacher geht, wäre es super 🙂

    Alternativ wäre es natürlich auch OK alle 100 excel Dokumente in eine große excel Tabelle zu packen und diese dann händisch nach CSV zu exportieren... Der Weg ist egal, hauptsache ich habe nachher eine CSV datei.

    Betrifft Office 2000/XP wobei es natürlich super wäre, wenn es auch auf anderen Office Versionen laufen würde (ist aber kein muss).

    Danke!

    PS:
    pro Excel Datei ist nur eine Tabelle vorhanden, also keine multitabellen oder sonst irgendwie komplizierte Dokumente. Auch keine Macros oder so...



  • ganzes verzeichnis mit unterverzeichnissen anschauen und alle word-dateien drucken (datei einfach als printall.vbs abspeichern):

    option explicit
    
    dim fs
    set fs=createobject("scripting.filesystemobject")
    dim word
    set word=CreateObject("Word.Application")
    word.Visible=true
    dim scriptPath
    scriptPath=left(WScript.ScriptFullName,len(WScript.ScriptFullName)-len(WScript.ScriptName))
    
    function processDocument(fileName)
     dim doc
     word.Documents.Open fileName,,,False
     set doc=word.ActiveDocument
     doc.PrintOut False
     doc.Close
    end function
    
    function processAllDocuments(path)
     dim folder,files,file,folders,a
     set folder=fs.getfolder(path)
     set files=folder.files
     for each file in files
     if fs.GetExtensionName(file.path)="doc" then
      processDocument(file.path)
     end if
     next 
     set folders=folder.SubFolders
     for each folder in folders 
      processAllDocuments(folder.path)
     next 
    end function
    
    processAllDocuments(scriptPath)
    word.Quit
    

    bin mich sicher, daß du auch mit excel und dem windows-scripting-host zu einer zufriedenstellenden lösung kommst. so vel anders wird's nicht sein.



  • thx, das müsste sich recht leicht anpassen lassen.
    👍



  • wenn ich solche aufgaben habe wo ich an 100 excel dokuemnten was machen soll, lasse ich ein makro aufzeichnen, am ende dr@cke ich ctrl+w das schlie\t das dokument, dann verpasse ich den makro ein hot key, [ffne die dokumente und dr@cke wie ein wilder den hot key, das makro geht dann alle [ffen document durch
    der makro recorder ist schon ne feine sache wenns darum geht irgend was schnell zu machen



  • gerard2 schrieb:

    wenn ich solche aufgaben habe wo ich an 100 excel dokuemnten was machen soll, lasse ich ein makro aufzeichnen, am ende dr@cke ich ctrl+w das schlie\t das dokument, dann verpasse ich den makro ein hot key, [ffne die dokumente und dr@cke wie ein wilder den hot key, das makro geht dann alle [ffen document durch
    der makro recorder ist schon ne feine sache wenns darum geht irgend was schnell zu machen

    Das ist mir zuviel aufwand. ich will das ja automatisieren und nicht händisch machen.

    es ist ja nicht so, dass ich nur einmal 100 dokuemente habe, sondern die muss ich regelmäßig verarbeiten. und einen affen zu dresieren, dass er das macht ist mir zu umständlich. da schreib ich lieber ein script 😉


Anmelden zum Antworten