Thread Rating:
  • 260 Vote(s) - 2.69 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Excelへ配列データを設定したいのですが
08-10-2012, 03:43 PM,
#1
Excelへ配列データを設定したいのですが
いつもお世話になっております。Curl7を使っております。

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

よろしくお願いします。
Reply
08-15-2012, 11:34 AM,
#2
RE: Excelへ配列データを設定したいのですが
こんにちは。

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

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

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

お試しください。

Reply
08-15-2012, 01:07 PM,
#3
RE: Excelへ配列データを設定したいのですが
早速のお返事、ありがとうございました。

ドキュメントに書かれていたのですね。大変失礼いたしました。Array-of 系、Array-2-of 系のいくつかで試してみて、できないのかも、と考えてしまいました。これからやってみたいと思います。ありがとうございました。
Reply
08-15-2012, 03:57 PM, (This post was last modified: 08-16-2012, 10:39 AM by ikubota.)
#4
RE: Excelへ配列データを設定したいのですが
試してみました。うまく行きました。

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

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

Reply
08-23-2012, 09:36 AM,
#5
RE: Excelへ配列データを設定したいのですが
さらに追伸です。
結局、OSのクリップボードを経由して、コピーペーストをすることで、高速にデータを書き出すことができました。
Reply

Forum Jump:


Users browsing this thread:
1 Guest(s)

MyBB SQL Error

MyBB has experienced an internal SQL error and cannot continue.

SQL Error:
1017 - Can't find file: 'mybb_threadviews' (errno: 2)
Query:
INSERT INTO mybb_threadviews (tid) VALUES('590')