Excel ファイルをインポートするときに特定のワークシートをスキップするにはどうすればよいですか?こんにちは、JMPフォーラムの皆さん、
JMP 16 を使用しています。複数のワークシートを含む Excel スプレッドシートをインポートする方法を探していますが、「Summary」という名前の特定のワークシートのインポートをスキップしたいと考えています。そのためのスクリプトを作成する方法はありますか?
注意: 私は定期的にこのような Excel ファイルを使用してレポートを作成します。そして、ワークシートの数と名前 (「概要」以外) は毎回異なります。
ありがとう
データアクセスウィンドウズRe: Excel ファイルのインポート中に特定のワークシートをスキップするにはどうすればよいですか?ありがとう、ティエリー! これは素晴らしい!
Re: Excel ファイルのインポート中に特定のワークシートをスキップするにはどうすればよいですか?やあ、
スクリプトを確認した後、同じソリューションに到達するためのより直接的なアプローチがあると思います。
Names Default to Here (1);
xlfid = Pick File(
"Select the Excel File", //prompt
"$Documents", //starting path
{"Excel Files|xls;xlsx", "Excel Files|*"}, //file types
1,
0,
""
);
dt = Open(xlfid,
//Worksheets(),
Use for all sheets( 1 ),
Concatenate Worksheets( 1 ), //CONCATEMATE IS ON
Create Concatenation Column( 1 ), //CREATE CONCAT COLUMN IS ON
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 7 ), // First seven rows are headers
Headers Start on Row( 1 ),
Data Starts on Row( 13 ), // Data starts on row 13
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 1 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "_" )
)
);
dt << Select where (contains(:Source Table, "Summary"));
dt << Delete Rows;
この単純なアプローチにたどり着くまでの複雑なルートで申し訳ありません。
一番、
TS
Re: Excel ファイルのインポート中に特定のワークシートをスキップするにはどうすればよいですか?やあ、
スクリプトの最後の部分を次のスニペットに置き換えてみてください。
tb_list = Get Data Table List ();
for (i = 1, i <= N Items (tb_list), i++,
if(i == 1, my_dt = tb_list [i],
concatenate(Data Table (my_dt), Data Table (tb_list[i]), "Append to first table")
)
);
上記のスクリプト スニペットはそのままでも問題なく動作しますが、「Create source column」スイッチを追加すると正しく動作しません。これは、連結の各ラウンドで新しい列が作成され、テーブル識別子がごちゃ混ぜになるためです。
。一番、
TS
Re: Excel ファイルのインポート中に特定のワークシートをスキップするにはどうすればよいですか?こんにちはティエリー、
これは機能しています-「概要」データテーブルを破棄します。 ありがとう!
ただし、連結に for() ループを使用する際に間違いを犯しています。 以下に私のコードを共有します。 こちらでご指導いただければ幸いです
Names Default to Here (1);
xlfid = Pick File(
"Select the Excel File", //prompt
"$Documents", //starting path
{"Excel Files|xls;xlsx", "Excel Files|*"}, //file types
1,
0,
""
);
dt = Open(xlfid,
//Worksheets(),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 7 ), // First seven rows are headers
Headers Start on Row( 1 ),
Data Starts on Row( 13 ), // Data starts on row 13
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 1 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "_" )
)
);
<BR />// Identifying and closing 'Summary' datatable
tb_list = Get Data Table List ();
for (i = 1, i <= N Items (tb_list), i++,
tb_name = tb_list [i] << Get Name;
if (contains(tb_name, "Summary"), Close (tb_list[i],NoSave))
);
<BR />// (1) Concatenating in to single datatable 'my_dt'.<BR />// (2) Closing individual datatables.<BR />
tb_list = Get Data Table List ();
for (i = 1, i <= N Items (tb_list), i++,
my_dt = Data Table( tb_list [1] ) << Concatenate(
Data Table( tb_list [i+1] ),
Create source column,<BR /> Close (tb_list[i],NoSave)
)
);Re: Excel ファイルのインポート中に特定のワークシートをスキップするにはどうすればよいですか?以下は、"Summary:
Names Default to Here (1);
tb_list = Get Data Table List ();
for (i = 1, i <= N Items (tb_list), i++,
tb_name = tb_list [i] << Get Name;
if (contains(tb_name, "Summary"), Close (tb_list[i],NoSave))
);
その後、Get Data Table List () コマンドを再実行して、残りのテーブルを新しいデータ テーブルに連結できます。
一番、
TS
Re: Excel ファイルのインポート中に特定のワークシートをスキップするにはどうすればよいですか?ありがとうティエリー!
私は List() の使用に慣れていないので、サンプル スクリプトが役に立ちます 
私の計画は、残りのワークシート (「概要」を除く) を連結することです。
よろしく
Re: Excel ファイルのインポート中に特定のワークシートをスキップするにはどうすればよいですか?やあ、
これを処理する単純な「汚い」方法は、すべてのワークシートを開き、開いているすべてのテーブルの名前を記録し [Get Data Table List()]、名前 == "Summary", [Close (dt, NoSave) のテーブルを破棄することです。 )]。
これらのコマンドを組み立てるスクリプトの実際の例が必要かどうかお知らせください。
一番、
TS