Curl Global Community
Excelへ配列データを設定したいのですが - Printable Version

+- Curl Global Community (http://communities.curl.com)
+-- Forum: Discussions (http://communities.curl.com/forumdisplay.php?fid=1)
+--- Forum: General Curl questions (http://communities.curl.com/forumdisplay.php?fid=2)
+--- Thread: Excelへ配列データを設定したいのですが (/showthread.php?tid=590)



Excelへ配列データを設定したいのですが - ikubota - 08-10-2012

いつもお世話になっております。Curl7を使っております。

ActiveXを利用して、Curl内部のデータを、Excelに書き出しています。cell一つ一つに値を設定しているので、非常に時間がかかっています。そこで、rangeに対して配列でデータを設定したいのですが、curl側で用意するデータ形式はどのようにすればよいでしょうか?{array-of any}, {array-2-of any}はサポートしていないタイプとのエラーでした。

よろしくお願いします。



RE: Excelへ配列データを設定したいのですが - imyme - 08-15-2012

こんにちは。

Curl のドキュメントを見ると ActiveX の配列(VT_ARRAY)に渡す型としては、FastArray-of を使用するようです。
試してみたところ、以下のような感じで配列を設定できました。

Code:
    def fa = {FastArray "abc", 11, 30, "こんにちは"}

    || Range(横方向のみ)に配列をセットする
    || ※縦方向にはできませんでした。
    set {excel-app.Range "A1", "D1"}.Value = fa

お試しください。




RE: Excelへ配列データを設定したいのですが - ikubota - 08-15-2012

早速のお返事、ありがとうございました。

ドキュメントに書かれていたのですね。大変失礼いたしました。Array-of 系、Array-2-of 系のいくつかで試してみて、できないのかも、と考えてしまいました。これからやってみたいと思います。ありがとうございました。



RE: Excelへ配列データを設定したいのですが - ikubota - 08-15-2012

試してみました。うまく行きました。

従来1セルごとにデータを入れていたのですが、10万件を一気に設定可能で、圧倒的に速く処理ができました。テキストファイルに書き出す速度よりは遅いですが、2倍はかからない程度で処理できました。ご参考まで。

追伸 データが作成されていたので、できたと思ってしまいましたが、やはり行方向のデータ設定は、最初の行がひたすらコピーされてしまう現象が発生しています。ご指摘の通り、ダメですね。困りました。




RE: Excelへ配列データを設定したいのですが - ikubota - 08-23-2012

さらに追伸です。
結局、OSのクリップボードを経由して、コピーペーストをすることで、高速にデータを書き出すことができました。