Excel ワークブックのシートのリストを取得するにはどうすればよいですか?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Open Database() を使用して Excel シートを開いている状況があります。
特定のシートから特定の列が必要なため、これは良い方法でした。そのため、SQL SELECT ステートメントを使用するのが理想的です。
シート名に標準化がないことがわかりました。 そこで、Excel ワークブックにクエリを実行して、その中のシートのリストを取得したいと考えています。 次に、コード内のいくつかのロジックを使用して、実際に必要なものを決定できます (標準化はありませんが、シート名に含まれている StringA または StringB またはたとえば StringC )
JSLでこれを行う方法がわかりません。 オンラインで検索すると、Excel ワークブックのシートを返す VBScripting などを使用したコード例がたくさんありますが、あまり役に立ちません。
それを行うSQLステートメントも見つけようとしましたが、ワークブックの「テーブル」/シートをリストするテーブル名がわかりません。
ファイル -> データベース -> テーブルを開くを使用して Excel データ ソースに接続すると、スキーマ - テーブル列に使用可能なすべてのシートが一覧表示されるため、JMP がそれを実行できることはわかっています。 同様に、個々の Excel ワークシートを選択して Open() コマンドを使用するようにユーザー設定を設定すると、開くシートを選択するよう求められます。
私の質問は、JMP が Excel シート名を把握する機能をスクリプト言語に公開しているかどうかを知っている人はいますか?
どうもありがとう
トーマス
Re: Excel ワークブックのシートのリストを取得するにはどうすればよいですか?Excel ワークシートを開く前にデータ テーブルを開いていると、最後の手順で混乱する可能性があります。クイック補正は
for(i=1, i <= nSheets, i++, dtname = データ テーブル(i +countBefore ) << 名前を取得);
Excel ワークブックのシートのリストを取得するにはどうすればよいですか?上記のコード フラグメントが修正されたことに注意してください。
Re: Excel ワークブックのシートのリストを取得するにはどうすればよいですか?これは、テーブルが非常に大きい場合には実行できない可能性がある、非常に不格好な方法です。 ただの断片...
1.ファイル>開くですべてのExcelシートを開くように設定します。
2. countBefore = N Table();
3. open() を使用して Excel ファイルを開きます。
4. countAfter = N テーブル();
5. nSheets = countAfter - countBefore
5. dtname = {};
5. for(i=1, i <= nSheets, i++, dtname = Data Table(i) << get name);
次に、 dtname は、操作できるシート名のリストであり、不要なテーブルを閉じることができます。
メッセージの編集者: mpb
コード フラグメントのインデックス作成を修正しました。
Re: Excel ブック内のシートのリストを取得するにはどうすればいいですか?これは古いスレッドですが、役に立つと思います。XLSX ファイルの内容を直接開いてこれを行うスクリプトを次に示します。XLSX ファイルは、ワークブックのプロパティ、構造、および要素を定義する XML ファイルのコレクションを含む単純な ZIP ファイルです。
Names Default To Here( 1 );
filename = pick file("Choose Excel File", "$DOCUMENTS", {"Excel Files|xlsx"} );
zipxlsx = Open( filename, Zip );
zip_file = zipxlsx << read( "xl/workbook.xml", Format( blob ) );
// Open the file
zz = Open(
zip_file,
invisible,
xml,
XML Settings(
Stack( 0 ),
Row( "/workbook/sheets/sheet" ),
Col(
"/workbook/sheets/sheet/@name",
Column Name( "name" ),
Fill( "Use Once" ),
Type( "Character" ),
Format( {"Best"} ),
Modeling Type( "Nominal" )
)
)
);
worksheets=(zz:name << get values);
close(zz, nosave);
write(worksheets);Re: Excel ブック内のシートのリストを取得するにはどうすればいいですか?
Re: Excel ブック内のシートのリストを取得するにはどうすればいいですか?マジですか?どうして私はこれについて知らなかったのでしょう。でもありがとう、とても役に立ちました!
Re: Excel ブック内のシートのリストを取得するにはどうすればいいですか?なぜそのことを知らなかったのですか...それはあなたが人間だからです。誰も JMP のすべてを知ることはできませんし、18 か月ごとに新しいリリースで大量の新機能や関数が登場します。個人的には、私が知らない、またはもう覚えていない JMP の非常に多くのことについて、あなたとあなたの貢献から多くのことを学びました。