Wenn Sie den Eingabeprozess automatisieren möchten, möchten Sie möglicherweise einen Python-Prozess als Vorprozess einschließen. WinAutomation hat eine Python-Aktion, die jedoch IronPython heißt, und es scheint schwierig zu sein, Bibliotheken wie Pandas zu verwenden. Daher möchte ich erklären, wie Python von Winautomation in der Umgebung ausgeführt wird, in der die Bibliothek installiert ist, die Sie verwenden möchten.
Füllen Sie 10.000 Zeilen Excel-Daten mit der folgenden Null (leer) mit 0 (Null) und geben Sie sie in ein anderes System ein 0 Verwenden Sie Python für den zu füllenden Teil und Winautomation für den Eingabeteil (Excel zu Excel als virtuell).
Es gibt verschiedene Möglichkeiten, eine Python-Umgebung zu erstellen, z. B. die Verwendung einer Distribution. Dieses Mal werden wir dies jedoch in der offiziellen Version erläutern. Wenn Sie eine installierte Umgebung haben, können Sie möglicherweise nicht normal arbeiten, wenn mehrere Umgebungen vorhanden sind. Gehen Sie daher bitte Ihr eigenes Risiko ein.
https://www.python.org/ Laden Sie 3.8.5 von herunter, installieren Sie es, ohne den Pfad zu übergeben. Führen Sie Skripte und Befehle von Py.exe aus, einer gleichzeitig installierten Launcher-App.
Überprüfen Sie den Installationsstatus und den Startvorgang, indem Sie die Versionsinformationen überprüfen
C:\Users\username>py -V
Python 3.8.5
Überprüfen Sie die ursprünglich installierte Bibliothek Suchen Sie nach Bibliotheken, die nicht die neueste Version sind
C:\Users\username>py -m pip list
Package Version
--------------- -------
pip 20.2.1
setuptools 49.6.0
C:\Users\username>py -m pip list --outdate
Wenn nicht die neueste Version, werden beide aktualisiert
C:\Users\user>py -m pip install -U Bibliotheksname
Bestätigen Sie erneut mit der py-m pip-Liste
Dieses Mal werden Pandas für die Datenverarbeitung verwendet und openpyxl und xlrd werden zum Lesen und Schreiben von Excel-Dateien verwendet. numpy und andere erforderliche Bibliotheken werden automatisch installiert, wenn pands installiert wird
C:\Users\user>py -m pip install pandas
C:\Users\user>py -m pip install openpyxl
C:\Users\user>py -m pip install xlrd
C:\Users\user>py -m pip list
Package Version
--------------- -------
et-xmlfile 1.0.1
jdcal 1.4.1
numpy 1.19.2
openpyxl 3.0.5
pandas 1.1.2
pip 20.2.3
python-dateutil 2.8.1
pytz 2020.1
setuptools 50.3.0
six 1.15.0
xlrd 1.2.0
Fügen Sie hinzu, wenn es eine Bibliothek gibt, die Sie auf die gleiche Weise verwenden möchten Der Code-Editor ist Visual Studio Code.
Richten Sie den Dateimonitor-Trigger mit Triggern aus der WinAutomation Console ein Verknüpfen Sie den Prozessnamen, der nach OK gestartet werden soll
Durch Starten von Erstellt von File Monitor Trigger Die folgenden Variablen haben automatisch Werte Nützlich, da es sich um eine Variable handelt, die in Process Designer nicht angezeigt wird
Variablennamen | Inhalt |
---|---|
%FileTriggerFileName% | Dateiname einschließlich Erweiterung |
%FileTriggerFilePath% | Behält den vollständigen Pfad der Datei und alle Eigenschaften der Datei bei |
%FileTriggerFilePath.NameWithoutExtension% | Dateiname ohne Erweiterung |
Übersicht über den Prozess
1.Set Variable Die von File Monitor Trigge übergebene Dateinamenvariable ist zu lang, daher habe ich sie nur verständlicher gemacht 2.Copy File(s) Kopieren Sie die erkannte Datei in den Datenordner in den Arbeitsordner 3.Write Text to File Python-Skript erstellen (.py) Wenn die einzugebende Datendatei einen festen Dateinamen hat, muss nicht jedes Mal ein Python-Skript generiert werden. In diesem Fall wird davon ausgegangen, dass der Dateiname schwankt, z. B. wenn das Datum enthalten ist, sodass der Dateiname von der Trigger-Variablen erfasst und jedes Mal geschrieben wird. Speichern Sie als UTF-8 als ZZ.py. Python Script ist ein schäbiger Inhalt, der nur in Pandas eingelesen und mit Nullfüllung und Dateiname 2.xlsx gespeichert wird Beim Erstellen aus einem Trigger wird der Dateiname in den variablen Teil eingegeben
import pandas as pd
df = pd.read_excel('%FileTriggerFileName%')
df.fillna(0).to_excel('%FileName%2.xlsx',index = None)
4.Run DOS Command Führen Sie die in 3 erstellte Datei ZZ.py aus
5.Launch Excel Ich öffne eine von Python generierte Excel-Datei, aber die Pfadnotation des Variablendateinamens lautet / anstelle von \ nur vor der Variablen. Ich möchte vorsichtig sein, weil es ein passender Punkt ist Wenn Sie die Option "Instanz sichtbar machen" deaktivieren, können Sie sie ausführen, ohne sie auf dem Bildschirm anzuzeigen. In diesem Fall müssen Sie jedoch am Ende des Vorgangs "Excel schließen" einfügen und die Instanz schließen, da sie sonst hinter den Kulissen geöffnet bleibt.
Anstatt in diese anderen Systeme einzugeben, wird nur der Datenteil Zelle für Zelle in ein leeres Excel übertragen, sodass er weggelassen wird. Der Grund dafür, dass keine Stapelkopie erstellt wird, besteht darin, dass davon ausgegangen wird, dass bei der Eingabe auf einem anderen System eine Transaktion erfolgt.
Der Launcher py.exe erleichtert das Ausführen von .py Script. Es kann in den Win Automation-Prozess integriert werden, nachdem eine praktische Bibliothek wie Pandas verwendet wurde.
Um die Wahrheit zu sagen, wenn Sie nur Nullen eingeben möchten, können Sie dies über WinAutomation mithilfe der Excel-Ersetzung tun. (Einfach) Wenn jedoch eine komplizierte Vorverarbeitung erforderlich ist, scheint es schwierig zu sein, Excel zu steuern. Dasselbe kann mit WinAutomation allein getan werden, indem der Prozess auf Null gesetzt wird, wenn er beim Posten leer ist. Es ist jedoch langsamer als wenn die Daten vorverarbeitet wurden. In meinem Boromachine Core i7 3770 8G, wenn 10.000 Zeilen * 7 Spalten Zelle für Zelle in eine andere Excel-Zelle übertragen werden, 5 Minuten und 50 Sekunden mit Vorverarbeitung Das Posten mit WinAutomation ohne Vorverarbeitung und ohne Verarbeitung dauerte 6 Minuten und 30 Sekunden.
Ich bin einsam, weil es noch wenig Informationen über Win Automation gibt.
Recommended Posts