Q&A

回答の並べ替え:
投稿新規に質問を投稿する

テーブルの一部の項目を選択してCSVファイルに書き出したい

SKK黒澤 SKK黒澤

2025-07-04 16:42

テーブルの一部の項目を選択してCSVファイルに書き出したいのですが、ワークシートにすべてのレコードの必要項目を読み込んで、その結果をファイル操作のactionの【セルのデータをCSVファイルとして保存する】方法しかないでしょうか?
テーブルのレコード件数が大きいので1件づつ読んで1レコードづつCSVファイルに追記してゆく方法はないでしょうか?
今は対象のレコード数をカウントしてワークシートを広げてから読込み、CSV出力しています。

SKK黒澤 SKK黒澤
ありがとうございます。actionの持つ機能で実現できる範囲か確認してみます。
横道にそれますが、MSのCopilotにCELFの使い方の質問を出すとかなり良い答えが返ってきますね。時々助けられています。
Yexiongmao Yexiongmao
こんにちは。

テーブルデータを一旦全件csvに書き出して、「csvファイルを読み取りデータ変換して保存する」を実行します。
上記アクションはRDBの基本的なな選択、射影、結合ができるようになっています。
シートにデータを展開するような件数の制限もありませんし、アクションセットもシンプルになります。
試してみる価値はあると思いまが、いかがでしょうか?
日本コンピュータシステム(CELFチーム) 日本コンピュータシステム(CELFチーム) パートナー
そうですね。CELFでは1件ごとに順次読込みの機能はないですね。

組込み次第ではテーブル検索アクションをループ処理することで擬似的に
順次読込みのような動きを再現できると思います。

しかし、CELFでは検索時のパフォーマンス低下には注意が必要なため
1アクションで多くても2000~4000回の検索アクションの実行に
収まるような工夫が必要となります。
メールコンタクトをとる
SKK黒澤 SKK黒澤
ありがとうございます。件数を指定しての読込み、試してみたいと思います。
対象のテーブルは削除されることもあるのでCEFのIDは飛び番になってしまいますが、件数でカバーできますね。
CELFではテーブルのレコードを1件づつ順番に読み込む方法は用意されていないということですね。
レガシーなDB2のreadnextのような順次読込みの機能はないですね。
日本コンピュータシステム(CELFチーム) 日本コンピュータシステム(CELFチーム) パートナー
メダルベストアンサー
こんにちは!

csvファイルへの追記アクションはなかったと思います。

代わりに出力用のテーブルを作成してそちらの
テーブルデータを出力するのはどうでしょうか?

csvファイルに出力したい項目が頻繁に可変しないのであれば、
csvファイルに出力する項目のみをまとめたテーブルを用意して
テーブルごと出力することで、出力の手間が減ると思います。
アクション例
①出力対象データの件数を取得
②2000件ずつ検索して(IDでソートするなどして検索済みのID範囲はシート上で保持しておく)
③検索した対象データを出力用のテーブルに登録。
④上記の②③の手順を出力対象データの件数を超えるまで繰り返す。
④「テーブル○○のデータを」CSVファイルとして保存するアクションで出力。

②と③は少し工夫が必要ですが、テーブルからデータ取得時に取得位置や
IDなどのキー項目は連番になるはずなので、ソートをするなどして
分割してシート上に表示する制御は可能だと思います。

参考になればと思います。
メールコンタクトをとる