UniX24 Posted September 4, 2018 Posted September 4, 2018 Hallo Zusammen, ich arbeite in einem Ingenieure Büro und wir zeichnen Pläne und legen diese Pläne struktuiert auf unseren Server ab. Wenn wir alle Pläne fertig haben, dann erstellen wir eine Planliste die so aussieht: Excel Tabelle - Ab A/6 soll z.b. der Name von der PDF-Datei eingetragen werden. - Für Index soll vom Dateinamen der Index ausgelesen werden. Beispiel: Dateiname ist "EP-03061-GR-DB-00-c", <-- am ende des Namens steht der Index und der sollte in der Exceltabelle unter "Index" eingetragen werden. - Datum kann ausgelassen werden, da es nicht um das Erstellungs Datum geht sondern wann der Plan gezeichnet wurde und das kann man nicht aus einer PDF auslesen. - Maßstab kann auch ausgelassen werden, da es auch im Schriftkopf in der PDF steht. - Wenn es geht würde ich gern das Format auslesen aus der PDF und in Excel in "Format" einfügen. (wenn es keine Umstände macht auch die automatische Erkennung, dass wenn das Format "210x297" sein sollte, dass in Excel A4 eingetragen wird.) Hier eine Tabelle: A0 841 x 1189 A1 594 x 841 A2 420 x 594 A3 297 x 420 A4 210 x 297 - Bei Beschriftungstext muss erstmal auch nichts hin, da es auch nicht leicht wird und da mache ich ein neuen Thread auf, falls ich es nicht selber schaffe. Also Ich möchte ein Programm schreiben das uns die Planliste automatisch ausfüllt. Dafür habe ich im Menü die Funktion "Set Folder". Damit trägt man den Pfad zum Projekt-Ordner ein. Der Pfad wird in der hier in eine .ini gespeichert Bin\Sys\cfg\path.ini [Config] Path=I:\RRI\Projekte\02863_WHG & EKZ_Köln-Kalk\ Der darauf Folgende Pfad ist dann immer gleich: Elektro : "18_Zeichnungen\3_RRI\1_Elektro\1_Grundrisse" "18_Zeichnungen\3_RRI\1_Elektro\2_Schemen" Heizung : "18_Zeichnungen\3_RRI\2_Heizung\1_Grundrisse" "18_Zeichnungen\3_RRI\2_Heizung\2_Schemen" Lüftung : "18_Zeichnungen\3_RRI\3_Lüftung\1_Grundrisse" "18_Zeichnungen\3_RRI\3_Lüftung\2_Schemen" Sanitär : "18_Zeichnungen\3_RRI\4_Sanitär\1_Grundrisse" "18_Zeichnungen\3_RRI\4_Sanitär\2_Schemen" Sprinkler : "18_Zeichnungen\3_RRI\5_Sprinkler\1_Grundrisse" "18_Zeichnungen\3_RRI\5_Sprinkler\2_Schemen" Wie man Im Quellcode sehen kann habe ich das so gelöst, dass ich meine Excel-Vorlage in den Ordner Export kopiere und möchte die Datei danach bearbeiten. Zum Schluss wollte ich nochmal die Planlisten in den 5 Verschiedenen Gewerken exportieren. Alles was im Verzeichnis Elektro gefunden wurde wird in Excel geschreiben, in D/4 wird Elektro eingetragen und als Excel-Datei abgespeichert. Das alles in den 5 Gewerken, also gibt es dann 5 Excel Dateien(außer wird haben ein Gewerk ausgelassen, dann wird die Tabelle für das Gewerk ausgelassen) Hier ist mein Quellcode: expandcollapse popup#include <File.au3> #include <Excel.au3> #Include <Array.au3> #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <GUIListBox.au3> #include <ProgressConstants.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <MsgBoxConstants.au3> #include <GuiMenu.au3> #include <FileListToArrayRecursive.au3> $ini = @ScriptDir & "\Bin\Sys\cfg\path.ini" Local $SourceFolder = "Bin\Sys\excl\file\" Local $DestinationFolder = "Export\" ; Form1. $Form1 = GUICreate("RRI Planlisten Exporter 2018", 763, 222, 198, 597) $MenuItem1 = GUICtrlCreateMenu("&File") $MenuItem6 = GUICtrlCreateMenuItem("Set Folder", $MenuItem1) $MenuItem4 = GUICtrlCreateMenuItem("Save", $MenuItem1) $MenuItem3 = GUICtrlCreateMenuItem("Exit", $MenuItem1) $MenuItem5 = GUICtrlCreateMenu("&Update") $MenuItem7 = GUICtrlCreateMenuItem("Check", $MenuItem5) $MenuItem2 = GUICtrlCreateMenu("&?") $MenuItem8 = GUICtrlCreateMenuItem("Info", $MenuItem2) $Pic1 = GUICtrlCreatePic("Bin\Sys\img\EX_BG_2018.jpg", -280, 0, 865, 225) $Progress1 = GUICtrlCreateProgress(16, 168, 550, 17) $Button1 = GUICtrlCreateButton("Export", 592, 160, 161, 33) $ListText = GUICtrlCreateList("", 16, 8, 297, 147) $Radio1 = GUICtrlCreateRadio("Tenbrinke", 600, 32, 145, 33) GUICtrlSetState(-1, $GUI_CHECKED) GUICtrlSetFont(-1, 11, 800, 0, "MS Sans Serif") GUICtrlSetCursor (-1, 0) $Radio2 = GUICtrlCreateRadio("Reim und Reimers", 600, 64, 145, 25) GUICtrlSetFont(-1, 11, 800, 0, "MS Sans Serif") GUICtrlSetCursor (-1, 0) $Label1 = GUICtrlCreateLabel("Planschlüssel ", 600, 8, 118, 24) GUICtrlSetFont(-1, 12, 800, 4, "MS Sans Serif") GUISetState(@SW_SHOW) ; Form1 end. ; Form2. $Form2 = GUICreate("Project path selection", 502, 83, 615, 493) $invoer = GUICtrlCreateInput("Projekt Path here", 24, 16, 449, 21) $voerin = GUICtrlCreateButton("Save Path", 24, 48, 91, 25) $Button3 = GUICtrlCreateButton("Exit", 392, 48, 83, 25) GUISetState(@SW_HIDE) ; Form2 end. ; Loop until the user exits. While 1 $nMsg = GUIGetMsg(1) Switch $nMsg[1] Case $Form1 Switch $nMsg[0] Case $GUI_EVENT_CLOSE, $MenuItem3 Exit Case $MenuItem6 GUISetState(@SW_SHOW, $Form2) GUICtrlSetData($invoer, IniRead($ini, "Config", "Path", "")) Case $MenuItem8 MsgBox($MB_SYSTEMMODAL, "Info", "Version 0.3 // Made By Adam Gabler") Case $MenuItem7 MsgBox($MB_SYSTEMMODAL, "Update Check", "Zurzeit kein Update verfügbar") Case $Button1 , $MenuItem4 GUICtrlSetData($ListText, "Loading...") GuiCtrlSetData($Progress1, 25) Sleep(800) _ExportData() GuiCtrlSetData($Progress1, 44) GUICtrlSetData($ListText, "") GUICtrlSetData($ListText, "Loading...") GUICtrlSetData($ListText, "Create a Excel file") Sleep(1800) GuiCtrlSetData($Progress1, 88) GUICtrlSetData($ListText, "") GUICtrlSetData($ListText, "Loading...") GUICtrlSetData($ListText, "Create a Excel file") GUICtrlSetData($ListText, "") GuiCtrlSetData($Progress1, 100) GUICtrlSetData($ListText, "Finish! The file is saved") Sleep(800) EndSwitch Case $Form2 Switch $nMsg[0] Case $GUI_EVENT_CLOSE GUISetState(@SW_HIDE, $Form2) Case $Button3 GUISetState(@SW_HIDE, $Form2) Case $voerin IniWrite($ini, "Config", "Path", GUICtrlRead($invoer)) EndSwitch EndSwitch WEnd Func _ExportData() Local $Array = _FileListToArrayRecursive($SourceFolder, "excel.xlsx", 1, 1) If Not IsArray($Array) Or Not $Array[1] Then Exit Msgbox(4096, 'No Files Found', 'Cannot Find any Files in ' & $SourceFolder) Local $CopyArray[$Array[0] + 1][2] $CopyArray[0][0] = $Array[0] For $i = 1 to $Array[0] $CopyArray[$i][0] = $Array[$i] $CopyArray[$i][1] = StringRegExpReplace($Array[$i], StringReplace($SourceFolder, "\", "\\"), StringReplace($DestinationFolder, "\", "\\")) Next For $i = 1 to $CopyArray[0][0] FileCopy($CopyArray[$i][0], $CopyArray[$i][1], 9) Next EndFunc Ich bin noch ein Anfänger , das ist mein erstes Programm mit Autoit und bis hier kam ich alleine zurecht. Ich kann mich schnell einarbeiten aber hierbei bräuchte ich Hilfe mit der Auslesung der Dateien und Eintragung in der Excel Tabellen. Mir ist auch klar das der Code.. Case $Button1 , $MenuItem4 GUICtrlSetData($ListText, "Loading...") GuiCtrlSetData($Progress1, 25) Sleep(800) _ExportData() GuiCtrlSetData($Progress1, 44) GUICtrlSetData($ListText, "") GUICtrlSetData($ListText, "Loading...") GUICtrlSetData($ListText, "Create a Excel file") Sleep(1800) GuiCtrlSetData($Progress1, 88) GUICtrlSetData($ListText, "") GUICtrlSetData($ListText, "Loading...") GUICtrlSetData($ListText, "Create a Excel file") GUICtrlSetData($ListText, "") GuiCtrlSetData($Progress1, 100) GUICtrlSetData($ListText, "Finish! The file is saved") Sleep(800) ..Ziehmlich schlecht ist aber ich wusste jetzt auch nicht wie ich den Text untereinander anzeigen lassen kann (wie bei einer Installation). Ist auch nicht das wichtigste ich hoffe es ist nicht zu viel verlangt und das ich mich Verständlich ausgedruckt habe ansonsten einfach nachfragen. Ich bedanke mich schon mal für Eure Mühen
AutoBert Posted September 4, 2018 Posted September 4, 2018 This is a english forum, so write in english. Here's is better place, if you don't can/like to post in english.
UniX24 Posted September 4, 2018 Author Posted September 4, 2018 18 minutes ago, AutoBert said: This is a english forum, so write in english. Here's is better place, if you don't can/like to post in english. OK Sry ^^
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now