トップ回答者
DataTableからクロス集計(ピポットテーブル)の作成

質問
-
皆様また、質問をさせてください。
VisualStudio2008を使用してWindowsアプリを作成しています。
件名のとおりピポットテーブルを作成したいと考えております。
サードパーティ製品などが存在することは承知なのですが、
それを使用せずに実現ができないか検討中です。
実現したい内容はSQLなどで取得したデータをクリスタルレポートのクロス集計ウィザードのようなフォーム
でユーザーに項目を選択させ、その結果をDataGridViewなどで
表示ができればと思っております。(別に出力するものにこだわりはありません)
http://www.codeproject.com/KB/recipes/CsharpPivotTable.aspx
上記URLなどいろいろ検索を行ったのですがそのほとんどが
選択する項目数を限定されたものしかなくあまり実用的では
なかったため、途方にくれています。。
どなたかこのようなアプリケーションを作成されたご経験の方は
いらっしゃいますでしょうか?
またピポットテーブルのようなものは作成できるのでしょうか?
回答
-
おはようございます!(^^)!ふ~です。
>ピポットテーブルのようなものは作成できるのでしょうか?
メモリーテーブルを作成し、検索と並び替えをするのでしょうが、面倒ですので、Excelが便利と思います。
VS2008でプロジェクトを作成する時に、Excel2007ブック(VisualC#->Office->2007->Excel2007ブック)
を選択するとExcelブックとなります。
◇ご参考資料
Excelのピボットテーブル
-
さとさと さんからの引用 仮に2005にバージョンアップを行った場合にはユーザーがExcelのピポットテーブルを
使用するみたいにデータを動的に取得できるのでしょうか?
出力したい項目が固定ではなくユーザーサイドで選択できるのが理想です。
pivotはSQL文で作成しますので、動的にpivotを作成するSQL文を作成するようにすれば可能だと思います。
以下が参考になりませんでしょうか?
列・行ともに動的なマトリックスレポートについて
http://forums.microsoft.com/msdn-ja/ShowPost.aspx?PostID=3461591&SiteID=7
すべての返信
-
おはようございます!(^^)!ふ~です。
>ピポットテーブルのようなものは作成できるのでしょうか?
メモリーテーブルを作成し、検索と並び替えをするのでしょうが、面倒ですので、Excelが便利と思います。
VS2008でプロジェクトを作成する時に、Excel2007ブック(VisualC#->Office->2007->Excel2007ブック)
を選択するとExcelブックとなります。
◇ご参考資料
Excelのピボットテーブル
-
皆様ご返信ありがとうございました。
早速ですが、
trapemiya さま
>SQL Server 2005以降でしたらpivotが使えますので、それを活用できませんでしょうか?
私の情報が少なすぎましたね、現在使用しているSQLはSQL Server2000を使用しております。
仮に2005にバージョンアップを行った場合にはユーザーがExcelのピポットテーブルを
使用するみたいにデータを動的に取得できるのでしょうか?
出力したい項目が固定ではなくユーザーサイドで選択できるのが理想です。
!(^^)!ふ~ さま
>メモリーテーブルを作成し、検索と並び替えをするのでしょうが、面倒ですので、Excelが便利と思います。
>VS2008でプロジェクトを作成する時に、Excel2007ブック(VisualC#->Office->2007->Excel2007ブック)
>を選択するとExcelブックとなります。
私も最初検討したのですが、現在ユーザーが使用しているExcelのバージョンが
2000,xp,2003,2007と統一されておりません。
http://support.microsoft.com/default.aspx?scid=kb;ja;302902
上記サイトに遅延バインディングを使用するオートメーション クライアントの作成
というところまでは調べられたのですが、コードが私には難解で
実際にデータをExcelに出力をしてPivotを作成するのはどうしたらいいのか
わかりません。
サンプルなどが他にもあればいいのですが、ご存知でしょうか?
-
さとさと さんからの引用 仮に2005にバージョンアップを行った場合にはユーザーがExcelのピポットテーブルを
使用するみたいにデータを動的に取得できるのでしょうか?
出力したい項目が固定ではなくユーザーサイドで選択できるのが理想です。
pivotはSQL文で作成しますので、動的にpivotを作成するSQL文を作成するようにすれば可能だと思います。
以下が参考になりませんでしょうか?
列・行ともに動的なマトリックスレポートについて
http://forums.microsoft.com/msdn-ja/ShowPost.aspx?PostID=3461591&SiteID=7 -
こんにちは。中川俊輔 です。
!(^^)!ふ~さん、trapemiyaさん、回答ありがとうございます。
さとさとさん、フォーラムのご利用ありがとうございます。
有用な情報と思われたため、!(^^)!ふ~さん、trapemiyaさんの回答へ回答済みチェックをつけさせていただきました。
pivotの作成だと下記の関数でしょうか?詳しいサンプルはみつかりませんでした。
CreatePivotTable メソッド
http://msdn.microsoft.com/ja-jp/library/cc383749.aspx
今後ともフォーラムをよろしくお願いします。
それでは!