Excelから結合ファイルに測定ファイルをインポートし、ファイルIDの一部を「パーツID」列にプルするスクリプトがあります。これは、ファイルIDを実際のファイルに関連付ける「コードキー」でテーブルを参照する必要がありますパーツID。
Excelファイルには3つのワークシートがあり、データの面で役立つのは1つだけです。 インポートは簡単です。
最初のワークシートのセルD7にある*実際の*パーツIDを直接取得したいと思います。
不確定な各ファイルからこの値を取得し、配列または他の変数に格納してから、メインファイルにダンプする方法はありますか?
Microsoft Excelワークブックをリレーショナルデータベースのように扱うことができます。このように、SQLを使用して必要な値のクエリを指定できます。プロセス全体をインタラクティブに実行して、プロセスが機能することを確認できます。結果のデータテーブルには、必要なJSLを含むソーステーブルスクリプトが含まれます。
開始ここに完全な手順と例については、JMPオンラインドキュメントを参照してください。
@ andersonmj2 、
ODBCが設定されておらず、システムファイルが設定されていない場合、特にPCに32ビットのOfficeがインストールされている場合は、少し習得する必要があるかもしれません。
マーク、 @markbailey 、JMP 13および初期のJMP14の時点で、Microsoft OfficeでのSYSWOWの使用手順はあまり信頼できませんでした。この手順は一部のPCでは機能し、他のPCでは機能しません。 JMPは初期のJMP 14以降、DBase、Text、Excel ODBCをセットアップするために何かをしましたか?はいの場合、興味があります。そうでない場合、PDFはJSL Companion用に書かれており、信頼できると思われる詳細な指示が含まれていますが、いくつかのステップがあります。SQLを使用してさまざまな種類のファイルを照会できるようにするには、セットアップを行う価値はあると思います。
したがって、以下のスクリプトは、JMP Excelウィザードを使用した代替方法を示しています。性能の保証はありません。 このスクリプトは、JSL forrの1つのファイルを示しています。このスクリプトでは、すべてのファイルに対処するためにループを作成する必要があります。
結果についてはログを参照してください cid = "70.gg.7";
Excelの列ヘッダー(A、B、...)は1行を表すため、8番目の値が使用されることに注意してください。
Names Default to Here(1);
//create Excel workbook
dt1_1 = New Table("Dummy",
New Column("A", Character, Values({"red", "white", "green", "blue", "yellow", "orange", "black", "magenta"})),
New Column("B", Numeric, Values({1,2,3,4,5,6,7,8})),
New Column("C", Numeric, Values({10,20,30,40,50,60,70,80})),
New Column("D", Character, Values({"10.aa1","20.bb.2", "30.cc.3", "40.dd.4", "50.ee.5","60.ff.6", "70.gg.7","80.hh.8"})),
New Column("E", Numeric, Values({101,102,103,104,105,106,107,108}))
);
wait(0);
dt1_2 = Open("$sample_data/Big Class.jmp");
dt1_3 = Open("$sample_data/Iris.jmp");
Create Excel Workbook("c:/temp/Test_GetExcelValue.xlsx", {"Dummy", "Big Class", "Iris"}, {"Sheet1", "Sheet2", "Sheet3"});
wait(0);
Close(dt1_1,Nosave);
Close(dt1_2,Nosave);
Close(dt1_3,Nosave);
//========================================================================
xl_dt3 = Open( "c:/temp/Test_GetExcelValue.xlsx", Invisible,
Worksheets("Sheet1"),
Worksheet Settings(1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 8 ),
Data Starts on Column( 4 ),
Data Ends on Row(8), //0 >> not set, read to end of rows
Data Ends on Column(4), //0 >> not set, read to end of cols
)
);
cid = xl_dt3[1,1];
close(xl_dt3,NoSave);
show(cid);