日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。C#タイトルの通りです。因みにMSDNフォーラムの質問が元ネタです。前にNPOIを使った記事を書いたりしましたが、それを使ってサーバーサイドでExcelのバイナリを作って転送してSilverlight側で保存すればいいんじゃないんだろうかというロジックです。作ってみようまず、ExcelDownloadSampleという名前でSilverlightアプリケーションを作成します。Servicesは有効にしておきます。DomainServiceを作成します。名前はExcelServiceにしておきました。エンテティとしてPersonクラスを作成します。}}そして、適当にテストデータを作って、それを取得するためのメソッドをサービスに作成します。db.AsQueryable();}そして、画面をデザインします。適当に上にLoadボタンとExport...ボタンがあって残りはDataGridが置いてあるシンプルな画面にしました。</Grid></UserControl>デザイナ上ではこんな感じです。コードビハインドでデータを取得してDataGridに表示します。今回はダウンロードが主目的なのでMVVMではなく、コードビハインドにべったり書きます。}}これで実行してLoadボタンを押すとデータがDataGridに表示されます。本題のExcelダウンロードでは、早速Excelのダウンロードの処理を書いていきます。全体をさくっと貼ります。format.GetFormat("yyyy年mm月dd日");}ほぼ、前に書いた記事のコードの使いまわしですが、細かいところでAPIに変更が入ってたりするので、このコードが今の所最新バージョンで動く感じです。Personのデータを純粋にExcelシートに書き込んで行って、最後にMemoryStreamに吐き出してbyte[]として返しています。Silverlight側の処理は以下のようになります。null);}ポイントは、コメントにも書いてありますがボタンクリックのところで必ずファイルを開くダイアログを出すところです。ないとダイアログ開かせてくれません。保存するファイルが選択されたら、サーバーからデータを取得して最後にファイルにデータを吐き出しています。実行すると以下のような感じです。保存されたExcelを開いてみるとちゃんと出てます。コードのダウンロードこのサンプルプログラムの完全なコードは以下からダウンロードできます。使えるようになりました。C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。Blogの内容は個人の見解であり、所属する企業を代表するものではありません。)はてなブログをはじめよう!okazukiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。