Wie werden gezippte E-Mail-Anhänge automatisch gespeichert, in CSV-Dateien dekomprimiert und in Diagramme konvertiert?

586
Ted Hoffer

Ich arbeite bei Van 't Hek, einem niederländischen Unternehmen, das sich auf alle Arten von Gründungsarbeiten (Bohr- / Fertigpfähle, Spundbohlen usw.) spezialisiert hat. Ich bin eigentlich Autocad-Ingenieur, aber ich habe Erfahrung in der Skriptsprache (HTML, Java & Lua).

Das Problem:

  • Unsere Brückenkräne verfügen über ein IPC mit gprs-Modul, mit dem die Daten der Rammproduktion im zip-Format an unsere angegebene E-Mail-Adresse gesendet werden. Der Kranführer muss die Projektnummer und die Stapelnummer eingeben, der IPC fügt hinter der Projektnummer eine aufsteigende Nummer hinzu, um die Reihenfolge der Produktion zu sehen. Die zip-Datei sieht also so aus:

16000_1_1.zip (Projekt # _incrementing # _pile #)

  • In der Vergangenheit mussten meine Kollegen und ich die Anhänge manuell im richtigen Ordner speichern. Der Mailsender ist die Kran-ID und der Betreff lautet: "E-Mail-Anhänge: 16000_1_1.zip"

    Derzeit verwenden wir ein kleines Programm namens Outlook SaveAttachment, um die Suche zu vereinfachen (Senden von / Datum / Projektnummer) und die Dateien am richtigen Ort zu speichern. Unten ist ein Beispiel, wo sie gespeichert werden können:

K: \ 3 Projekte \ 16000-16050 \ 16000 Projektstandort - Projektname, Bauunternehmen \ 06 Produktionsdaten

Beachten Sie, dass der Ordner 06 Productiondata manchmal erstellt werden muss, wenn zuvor nichts gespeichert wurde. Alle anderen Teile des Pfads sind variabel und die einzige Referenz ist die Projektnummer (dh 16000).

  • Dann dekomprimieren wir die zip-Datei mit 7zip nach csv.
  • Wir haben ein Excel-Datenblatt des Kranherstellers, um eine Auswahl von Dateien zu importieren und sie in diesem Fall über den Standarddrucker (pdf24) zu drucken. Dies gibt alle Dateien in einen bestimmten Ordner auf K: aus und wir verschieben die Dateien manuell in den richtigen Ordner.

Sie alle können sich vorstellen, dass dieser Prozess zu einem Schmerz wird, besonders wenn man bedenkt, dass wir über 10 Kräne haben, die jeden Arbeitstag ein Dutzend Haufen bieten.

Ich konnte die Dateien in einem Ordner K: Laufwerk mit einer Regel und einem Skript abrufen, aber nicht irgendein Such- / Vergleichsskript erstellen, um es in den richtigen Ordner zu legen oder ein automatisiertes Laufwerk zu erstellen, um das Excelsheet zu öffnen und die Datei zu verarbeiten ( s). Ich habe mit einem Programm namens DirListing herumgespielt, um die Ordnerstruktur zu scannen und in eine Datei (txt / csv) auszugeben.

Es würde mir sehr helfen, die Dateien automatisch im korrekten Projektordner zu speichern und schließlich den Import in Excel zu automatisieren und pdf-Dateien in den gleichen Ordner wie die csv-Dateien auszugeben.

Hat jemand Ideen, wie man das erreichen kann? Vielleicht eine Art Batch-Datei oder eine PowerShell-Lösung (mit der ich noch nicht vertraut bin)?

Mein Code:

Public Sub SaveToDisk(itm As Outlook.MailItem)  Dim objAtt As Outlook.Attachment  Dim saveFolder As String  Dim dateFormat dateFormat = Format(Now, "yyyy-mm-dd")  'Change this path to the your folder location  saveFolder = "c:\temp\"  objAtt.SaveAsFile saveFolder & "\" & dateFormat & ".xls"  Set objAtt = Nothing  End Sub 
0
Willkommen bei Super User! Bitte beachten Sie, dass [SU] kein kostenloser Skript- / Code-Schreibservice ist. Wenn Sie uns sagen, was Sie bisher versucht haben (einschließlich der Skripts / des Codes, die Sie bereits verwenden) und wo Sie stecken bleiben, können wir versuchen, bei bestimmten Problemen zu helfen. Sie sollten auch lesen [Wie kann ich eine gute Frage stellen?] (Https://superuser.com/help/how-to-ask). DavidPostill vor 7 Jahren 0
`Public Sub SaveToDisk (itm As Outlook.MailItem)` `Dim objAtt As Outlook.Attachment`` Dim saveFolder As String `` Dim dateFormat` dateFormat = Format (jetzt, "yyyy-mm-dd") objAtt.SaveAsFile saveFolder & " \ "& dateFormat &" .xls "Set objAtt = Nothing End Sub Ted Hoffer vor 7 Jahren 0
Bitte schreiben Sie keinen Code in Kommentare (es ist nicht lesbar), [bearbeiten] Sie stattdessen Ihre Frage. Ich habe das diesmal für dich gemacht. Bitte überprüfen Sie, ob ich es richtig gemacht habe. DavidPostill vor 7 Jahren 0
Es gibt viel zu viel redaktionellen Inhalt, um das Ganze zu verstehen, aber: Ihre Zielordner scheinen 2 oder 3 mehr Granularitätsebenen zu haben als das Namensschema für Anhänge. Wenn Sie dies automatisieren möchten, benötigen Sie entweder den Dateinamen um alle erforderlichen Informationen zu enthalten, oder Sie benötigen eine Datenbank, die 1) die Beziehungen zwischen dem Operator und dem Zielordner identifizieren kann; und 2) diese Datenbank verwenden, um die Lücken in den Informationen zu füllen (möglicherweise über den Namen des Betreibers oder die E-Mail-Adresse der Quelle). Yorik vor 7 Jahren 0

0 Antworten auf die Frage