• ベストアンサー

C# Excelファイルを生成したい

只今Excelファイルの出力について悩んでいます。 DataGridViewやListViewのデータをExcelに吐き出そうと思っています。 が、ネットで色々と調べてもよくわかりません・・・ サンプルソースは出てくるのですが、何が必要でどのようなことができるのかが いまいちピンと来なく、なかなか実現に至っていません。 やりたいことは  ・新規作成するExcelファイルの名前を任意で入力  ・保存先を指定  ・DataGridViewなどの入力データをExcelにそのまま吐き出す です。 分からないのは  ・Excelファイルを生成して保存してからデータを入れるのか(処理の順番)  ・データ挿入はどうやるのか  ・そもそもExcelファイルの生成と保存の仕方 プログラミング初心者なので、いまいち把握しきれません できれば97-2003ブックに対応したものをと思っています。 手順など分かる方、よろしくお願いします。 念のため開発環境とExcelのバージョンを・・ VisualStudio2008 C# OS:XP Excel:2007

質問者が選んだベストアンサー

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

> ・そもそもExcelファイルの生成と保存の仕方 についてですが。 C#にてエクセルの名前をつけて保存の方法 http://okwave.jp/qa4881377.html 回答No3で、新規Book作成~名前を付けて保存をしてます。 Excel2007は不所持なので、もし違ったらごめんなさい。

tasoh
質問者

お礼

おお、新規作成から保存までのサンプルソース! ありがとうございます 試してみます

tasoh
質問者

補足

色々試した結果、n-jun様に示していただいたやり方を ベースにした方法に落ち着きました。 データの挿入はコピーペーストにて一気に行い 1つずつ挿入によるスピードダウンを回避。 ですがもうちょっと利口なやり方があるような気がします・・・ それはまたちょくちょく調べつつ実現していけたらと思います。 回答して頂いた方ありがとうございました! ※妙なところで、A1がCell[1,1]であることになかなか気付かず  Cell[0,0]と記述していたため  エラーに小一時間ほど悩んだりもしました。。。

その他の回答 (2)

  • nas02
  • ベストアンサー率70% (22/31)
回答No.3

まだ出てない方法で、Microsoft Jet データベース エンジン(ACCESSのデータベースエンジン)を使うやり方があります。 この方法のメリットとしては、ExcelがインストールされてなくてもExcelファイルに出力できる事でしょうか。 (内容の確認には、Excelがないと不便ですが。。。) 以下のサイトで丁度よい例が載ってますので、参考にされたら良いと思います。 http://blog.so-net.ne.jp/jem/2009-03-07 処理は、以下のような流れになってます。 1.データベースのオープン(Excelファイル生成含む) 2.DataGridViewよりExcelにテーブル(シート)を作成   ※テーブルの項目は、DataGridViewから自動生成 3.DataGridViewのデータを作成したテーブル(シート)に出力   ※パラメータクエリで出力時に毎回パラメータを作成しているので改善の余地ありです。 4.データベースのクローズ(Excelファイル保存) ※ソースには、インデントを作るために漢字スペースが使われてますので使う場合は気を付けて下さい。 探せば他にも参考となる資料がありそうです。 まあ、出力形式に拘らなければ、CSVファイルとして出力する方が一番簡単だと思います。

tasoh
質問者

お礼

なるほど、DBとして扱えるんですね 流れも丁寧に教えて頂きありがとうございます ソースをみながら試してみます 確かにCSVにして出力は簡単そうですね ですが今回はExcelに出力してそのまま印刷などもやりたいので・・・ でもCSVのほうもそのうち必要になってくると思うので こちらもやり方調べてみます アドバイスありがとうございます

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.2

主に三つの方法があります。 (1)Excelオートメーションを使用する。 (2)ExcelHTML形式またはExcelXML形式のテキストファイルを作成して、拡張子はxlsで保存する。 (3)サードパーティのライブラリを使用する。(お勧めはExcelクリエータ) (1)は、.NETとの相性が悪く、Excelのバージョンの違いにより問題が発生します。 お勧めしません。 (2)は、Excel97で雛形を作ってHTML形式で保存。そのファイルを真似して作ればよい。 Excelクリエータは有料ですが、最も簡単でトラブルもなくてお勧めです。

tasoh
質問者

お礼

3つも方法があるんですね 有料なものは相談する必要があるので HTMLで吐き出してxlsで保存する方法を調べてみます ありがとうございます!

関連するQ&A

専門家に質問してみよう