Excelへの出力について教えてください!

ASTERIAでこんなことできる?…と思うことなど、ご遠慮なく...(^_-)

Excelへの出力について教えてください!

投稿記事by Mansell » 2010年3月04日(木) 14:45

2週間前から、さわり始めました。どうも勝手がわからず、教えていただけませんか?

まだ、フローで処理を作る段階までいっていないのですが、以下の環境でExcelに出力したところ、2時間くらいかかりました。
同じ内容をCSVで出力したところ1分もかからなかったのです。
「Excel出力するのは、数レコードでしか使えない」のでしょうか?

○RDB   : SQL_SERVER2008
○OS    : Windows2008 (クライアントWindowsXP SP3)
○asteria
 バージョン : 4.4.0
○Office  : Office2003

【処理内容】
RDBのテーブルをExcelへ出力
・20フィールド程度(200byte程度)
・約3000レコード
・文字列・数字列・日付列混在

フロー内容
①Strat      トランザクション化(はい)
②RDBGet    テーブル指定、1レコードづづ取り出す。トランザクションに含める。
③マッパー    単純に左から右へつなぐ。
④ExcelOutput Excelビルダーで横列指定、縦列は便宜的に60000とした。
⑤End


できれば、今後考えている処理はCSVではなく、Excelに出力したいので、お知恵をお貸し頂けませんでしょうか?
宜しくお願い致します。
Mansell
 
記事: 16
登録日時: 2010年2月24日(水) 16:13

投稿記事by super » 2010年3月05日(金) 12:58

> ②RDBGet    テーブル指定、1レコードづづ取り出す。トランザクションに含める。

ここでループを開始しているためExcelOutputへの書き込みが1行ずつ3000回発生しています。
またRDBGetでは通常「トランザクションに含める」をはいにする必要はありません。

ループを開始 = いいえ
トランザクションに含める = いいえ

とすれば劇的にパフォーマンスが改善されると思います。
(CSV出力の方でも改善されます。)
super
 
記事: 124
登録日時: 2006年12月19日(火) 12:57

投稿記事by Mansell » 2010年3月08日(月) 09:53

ありがとうございます!
早速変更して、実行してみました。

劇的に早くなりました(なんと数秒)。

しかし、Excelには何も出力されていませんでした・・・
RDBGetでは読み込んでいるようなのですが・・・

Excelビルダーの設定が悪いのでしょうか?
書出し処理(追加)で単純に範囲指定しているだけなのですが、、、
(CSVも出力されなくなってしまいました)

何が悪いのかさっぱりです。。。


自己解決しました。
ありがとうございました。
Mansell
 
記事: 16
登録日時: 2010年2月24日(水) 16:13


Return to ビギナールーム

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[0人]