Benutzerdefinierte Datendateien importieren
ImpWiz-UserDefined-File
Wenn die Datendateien, die Sie importieren möchten, nicht über die Optionen der Importfilter von ASCII- oder Binärdateien importiert werden können, können Sie Ihre eigene Python- oder Origin-C-Funktion zum Importieren der Dateien schreiben.
Python-Code für den Datenimport
Python-Code kann verwendet werden, um eine benutzerdefinierte Datendatei zu importieren. Ein grobes Beispiel eines solchen Codes wird unten dargestellt. Der wichtigste zu beachtende Punkt zu diesem Code ist, dass das Zielarbeitsblatt aktiviert sein muss, bevor der Code von Origin aufgerufen wird. Zudem erhält die LabTalk-Variable fname$ mit dem vollen Pfad und Dateinamen der aktuell zu importierenden Datei. Bitte lesen Sie die Codekommentare, um besser zu verstehen, was im Python-Code zu tun ist.
import originpro as op import pandas as pd # Function reads file into a pandas DataFrame. def read_file(file): df = pd.DataFrame() with open(file, 'r') as f: line = f.readline() while line: # Put your code here to parse the line in the file # and then append it to the DataFrame. return df # The file chosen by Origin import filter is placed into the fname$ # LabTalk variable. Must bring it into Python. Don't specify $ in name! fname = op.get_lt_str('fname') # Read the file into a pandas DataFrame. data = read_file(fname) # Returns the active sheet. wks = op.find_sheet() # Add DataFrame to sheet starting at first column. # DataFrame column labels will become worksheet column long names. # Origin automagically sets column format based on DataFrame data types. wks.from_df(data)
Nach Erstellen des Codes, der den Import handhabt, können Sie ihn folgendermaßen verwenden:
- Öffnen Sie den Importassistenten mit der Schaltfläche Importassistent oder wählen Sie Daten: Aus Datei importieren: Importassistent im Origin-Menü.
- Wählen Sie auf der ersten Seite (der Quellseite) des Assistenten die Option Benutzerdefiniert in der Gruppe Datentyp.
- Legen Sie den Pfad für die importierten Dateien fest, wenn Sie eine oder mehrere Dateien importieren möchten, oder wählen Sie die Option Zwischenablage, wenn Sie aus der Zwischenablage importieren möchten.
- Wählen Sie ein Zielfenster aus, indem Sie eine der Optionen in der Gruppe Zielfenster auswählen. Wählen Sie ggf. eine Vorlage * und einen Importmodus. Klicken Sie auf Weiter, um zur Seite Anwenderdefinierte Filter zu gelangen.
- Fügen Sie auf der Seite Benutzerdefinierte Filter Ihren Code in den Textbereich Python-Code ein. Alternativ können Sie Ihren Python-Code in einer Datei speichern und das Bedienelement Python-Datei verwenden, um einen Pfad zu einer Python-Datei festzulegen. Der Pfad kann sein:
- ein absoluter Dateipfad,
- ein Dateipfad relativ zu Ihrem Anwenderordner,
- nur ein Dateiname, wenn sich die Datei in Ihrem Anwenderdateiordner befindet.
- Wenn Sie alle Einstellungen vorgenommen haben, klicken Sie auf Fertigstellen. Ihr Python-Code wird verwendet, um die Dateien zu importieren.
*: Die Vorlage des Zielfensters, die auf der ersten Seite Quelle des Importassistenten genannt wird, wird nur beim Erstellen neuer Fenster verwendet (wie es unter bestimmten Bedingungen während des Importierens mit Drag&Drop der Fall sein würde). Wenn Sie Daten: Aus Datei importieren wählen und Ihr aktives Fenster den Zielfensterspezifikationen Ihres Importfilters entspricht, dann wird kein neues Fenster erzeugt, sondern nur ein Verweis auf das Seitenobjekt für das aktive Fenster an Ihre Funktion übermittelt. Wenn das aktive Fenster ein anderer Fenstertyp ist, dann wird ein neues Fenster auf der Grundlage der angegebenen Vorlage erzeugt und der Seitenverweis zu diesem neuen Fenster weitergegeben. |
Origin-C-Funktionen für den Datenimport
Sie können Ihre eigene Origin-C-Funktion entwickeln, um mit dem Import benutzerdefinierter Datendateien umzugehen, indem Sie eine Origin-C-Funktion in einer Origin-C-Datei erstellen.
Der Prototyp der Origin-C-Funktion muss einer der folgenden sein:
- int YourFunctionName(Page& pgTarget, TreeNode& trFilter, LPCSTR lpcszFile, int nFile)
- int YourFunctionName(Layer& lyTarget, TreeNode& trFilter, LPCSTR lpcszFile, int nFile)
Hinweis: Weitere Einzelheiten zum Schreiben dieser Origin C-Funktionen können im Kapitel Daten importieren im Origin C Guide nachgelesen werden. |
Nach Schreiben einer Funktion zum Durchführen des Imports und ihrer Speicherung in eine Origin C-Datei, können Sie sie folgendermaßen verwenden:
- Öffnen Sie den Importassistenten mit der Schaltfläche Importassistent oder wählen Sie Daten: Aus Datei importieren: Importassistent im Origin-Menü.
- Wählen Sie auf der ersten Seite (der Quellseite) des Assistenten die Option Benutzerdefiniert in der Gruppe Datentyp.
- Legen Sie den Pfad für die importierten Dateien fest, wenn Sie eine oder mehrere Dateien importieren möchten, oder wählen Sie die Option Zwischenablage, wenn Sie aus der Zwischenablage importieren möchten.
- Wählen Sie ein Zielfenster aus, indem Sie eine der Optionen in der Gruppe Zielfenster auswählen. Wählen Sie ggf. eine Vorlage * und einen Importmodus. Klicken Sie auf Weiter, um zur Seite Anwenderdefinierte Filter zu gelangen.
- Klicken Sie auf dieser Seite auf die Schaltfläche Durchsuchen auf der rechten Seite der Origin C-Quelldatei. Navigieren Sie zu dem Ordner, in dem sich die Origin C-Datei befindet. Wählen Sie die Datei aus und klicken Sie auf Öffnen, um zum Importassistenten zurückzukehren. Geben Sie den Namen der Funktion im Bearbeitungsfeld Origin C-Funktion ein. Klicken Sie dann auf Weiter, um die Einstellungen auf anderen Seiten benutzerdefiniert anzupassen.
- Wenn Sie alle Einstellungen vorgenommen haben, klicken Sie auf Fertigstellen. Ihre Origin C-Funktion wird verwendet, um die Dateien zu importieren.
*: Die Vorlage des Zielfensters, die auf der ersten Seite Quelle des Importassistenten genannt wird, wird nur beim Erstellen neuer Fenster verwendet (wie es unter bestimmten Bedingungen während des Importierens mit Drag&Drop der Fall sein würde). Wenn Sie Daten: Aus Datei importieren wählen und Ihr aktives Fenster den Zielfensterspezifikationen Ihres Importfilters entspricht, dann wird kein neues Fenster erzeugt, sondern nur ein Verweis auf das Seitenobjekt für das aktive Fenster an Ihre Funktion übermittelt. Wenn das aktive Fenster ein anderer Fenstertyp ist, dann wird ein neues Fenster auf der Grundlage der angegebenen Vorlage erzeugt und der Seitenverweis zu diesem neuen Fenster weitergegeben. |
|