Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
エクセルファイルの中に複数のシート毎にデータがあります。
このシート名に統一性がないため、一度エクセルマクロでシートを合成してからQlikviewに読み込ませていますが、
複数シートを一括してQlikviewに取り込むためのスクリプト文を作成するためにはどのようにしたらよいでしょうか?
アドバイスを頂ければと思います。
お世話になります。
回答頂きありがとうございます。エクセルファイル自体をODBCで読み込んでくるという
内容についてはできていたのですが、そこから全てのシートを一括で取り込むという
ところに苦戦をしております。
頂いた情報を元に再度TRYをしてみます。
解決済みかもしれませんが、拡張子が '.xls' のエクセルなら、以下の方法で可能です。
サンプルでは、シート名に関係なく、最大10シートまでデータを順に取り込み、シートが無くなった時に発生するエラー情報を利用して処理を停止させています。
10シート以上想定される場合は、 to の後の '10' を増やしてもらえれば大丈夫です。
サンプルスクリプト::::::::::::::::::
Set ErrorMode = 0; //エラーモードを0にセットする事で、エラー発生によるスクリプトの停止を防ぎます
FOR i = 1 to 10
LET v = '@'&$(i);
Directory;
Data:
LOAD data
FROM
データファイル.xls
(biff, embedded labels, table is $(v));
IF ScriptError <> 0 then //エラーが発生したらforから抜けます
EXIT For
END If
NEXT
Set ErrorMode = 1; //エラーモードを1に戻します
Wakamatsu様 回答頂きありがとうございます。 すでにODBC接続の手法で対応できましたが、頂いた内容でもTRYしてみようと思います。
ODBC接続でもファイルは拡張子xlsでやっておりますが、xlsxでは不可能なのでしょうか?
xlsxでも試してみましたが、うまくいきませんでした。
以前私も代理店経由でメーカーへ問合せした事がありますが、メーカーから.xlsxは同様の指定は出来ないとの回答をもらいましたので、おそらく無理だと思います。
Wakamatsu様 ありがとうございました。
やはりxlsでしか対応していないのですね。
シートの複数読み込みについては全てのシート読み込みで都度ODBC接続しにいったり、セルの名前定義(印刷範囲等)が
あるとそれを削除しておかないとうまくいかない等の問題がありました。
(拡張子もxlsxからxlsに変更しないといけない)
効率的な観点で見るとそのままエクセル上のマクロでやった方が早いという結論になりました。
今後別の手法でうまくできないかというところも検証していきたいと思います。
私は配列にシート名を入れ、それを for each で取り出して load するようなスクリプトを組んでいます。ロードするたびに配列にシート名を追加して使っています。