インポートしたいデータファイルがインポートフィルタのASCIIまたはバイナリファイルのオプションを使用してインポートできない場合、独自のPythonまたはOriginC関数を作成してファイルをインポートできます。
Pythonベースのインポートフィルタを作成する方法について説明します。 |
Pythonコードを使用して、ユーザ定義のデータファイルをインポートできます。このようなコードの簡単な例を以下に示します。このコードに関する最も重要な点は、Originによってコードが呼び出される前に、目的のワークシートがアクティブ化されることです。さらに、LabTalk変数 fname$ には、インポートする現在のファイルのフルパスとファイル名が入力されます。Pythonコードで何をする必要があるかをよりよく理解するには、コードコメントをご覧ください。
import originpro as op import pandas as pd # 関数はファイルをpandas DataFrameに読み込みます。 def read_file(file): df = pd.DataFrame() with open(file, 'r') as f: line = f.readline() while line: # ここにコードを入力して、ファイルの行を解析します # 次に、それをDataFrameに追加します return df # Originのインポートフィルタによって選択されたファイルはfname$に配置されます # LabTalk変数。Pythonに取り込む必要があります。名前に$を指定しないでください! fname = op.get_lt_str('fname') # ファイルをpandas DataFrameに読み込みます data = read_file(fname) # アクティブなシートを返します。 wks = op.find_sheet() # 最初の列から始まるシートにDataFrameを追加します。 # DataFrame列ラベルは、ワークシート列のロングネームになります。 # Originは、DataFrameデータ型に基づいて列形式を自動的に設定します。 wks.from_df(data)
インポートを処理するコードを作成すると、次のように使用できます。
* : インポートウィザードの「データソース」ページにあるターゲットウィンドウテンプレートの名前は、新しいウィンドウを作成するときだけ使われます(ドラッグ&ドロップインポート時にはいくつか条件があります。)。メニューから、「データ:ファイルからインポート」を選択するとき、アクティブウィンドウがインポートフィルタのターゲットウィンドウとして設定されていると、新しいウィンドウは作成されず、アクティブウィンドウへのpageオブジェクトの参照が関数に渡されます。アクティブウィンドウが異なるタイプの場合、指定したテンプレートで新しいウィンドウが作成され、この新しいウィンドウへのpage参照が渡されます。 |
OriginCファイルにOriginC関数を作成することにより、ユーザ定義データファイルのインポートを処理する独自のOriginC関数を開発できます。
Origin C関数のプロトタイプは、下記のいずれかでなければなりません。
Note:このようなOrigin C関数を記述する方法についての詳細は、Origin Cガイドのデータのインポートにあります。 |
インポートを行う関数を記述して、それをOrigin Cファイルに保存したら、次のようにしてそれを使用することができます。
* : インポートウィザードの「データソース」ページにあるターゲットウィンドウテンプレートの名前は、新しいウィンドウを作成するときだけ使われます(ドラッグ&ドロップインポート時にはいくつか条件があります。)。メニューから、「データ:ファイルからインポート」を選択するとき、アクティブウィンドウがインポートフィルタのターゲットウィンドウとして設定されていると、新しいウィンドウは作成されず、アクティブウィンドウへのpageオブジェクトの参照が関数に渡されます。アクティブウィンドウが異なるタイプの場合、指定したテンプレートで新しいウィンドウが作成され、この新しいウィンドウへのpage参照が渡されます。 |