C#で作成したアプリケーションからExcelの特定のセルに書き込むには?(その他(プログラミング)のQ&A)

回答受付中の質問

C#で作成したアプリケーションからExcelの特定のセルに書き込むには?

最近C#を始めたばかりの初心者です。
環境は
Visual Studio.NET 2003
Excel2003
SQLServer2000
です。

C#でデータベースから個人データを読み込み、それを表示するアプリケーションを作り、さらにそのデータをExcelファイルに出力したいのですが、Excelファイルの特定のセルにデータを書き込むためにどうすればよいのかわかりません。
自分で調べてみてもC#のExcelに関するコマンドが簡単に詳しく書かれているページが見つかりませんでした。
そのようなページをご存知の方がおりましたら、教えてください。
よろしくお願いします。

投稿日時 - 2007-06-20 10:17:40

QNo.3100138

すぐに回答ほしいです

4人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

回答(3件中 1~3件目)

ANo.3

参考になるか分かりませんが、
VBSでExcelの扱い方がいろいろあります。

http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/default.mspx

投稿日時 - 2007-06-22 03:42:52

ANo.2

J_H

プロジェクトにアセンブリ参照を追加してください。
リファレンスは「参考URL」参照(インターフェースの方)。

[以下 VS2005]
アセンブリ参照を追加するには:
(1) ソルーションエクスプローラの参照設定を右クリックし「参照の追加」 を選択。
(2) ダイアログボックスが現れたら、Comタグを選択。
(3) コンポーネント名が 「Microsoft Excel x.x Object Library」 (x.x は数字)を選択。
[Office 2000 の場合は x.x = 9.0 でした]

[以下 プロジェクトはコンソール. Office2000 で確認]
新規Excel を開き、A1に1000、B2 にAAAAA を書き込む
(閉じる・保存するといった処理が別途必要):

using System;
class Program{
static void Main(string[] args){
try{
Excel.Application excel = new Excel.Application(); //エクセル
Excel.Workbook workbook = excel.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet); // ワークブック
Excel.Worksheet sheet = (Excel.Worksheet)workbook.ActiveSheet; // シート
((Excel.Range)sheet.Cells[1, 1]).Value2 = 1000; // 書き込む
((Excel.Range)sheet.Cells[2, 2]).Value2 = "AAAAA"; // 書き込む

excel.Visible = true; //見せる
}catch (Exception e){
Console.WriteLine(e.StackTrace);
}
}
}
}

適当に作ったので、うまくいかないかもしれません。
参考程度にしてください。

参考URL:http://msdn2.microsoft.com/ja-jp/library/microsoft.office.interop.excel(vs.80).aspx

投稿日時 - 2007-06-20 23:26:12

お礼

ありがとうございました。
参考にしてやってみます。

投稿日時 - 2007-06-21 13:57:37

ANo.1

以前自力でEXCELファイルにデータを吐き出そうとあれこれやってみたもののうまくいかなかった者です。

EXCELファイルにデータを書き込むにはEXCELファイルのファイルフォーマットを知らないと書けないように思います。(EXCEL VBA とかならできるのかもしれませんが、そちらはよくわからないので。^^;)
拡張子XLSのファイルを作成するには専用のサードパーティ製ソフトがあります。それを使えばできるのではないでしょうか。
例: http://www.seshop.com/detail.asp?pid=4453

単純に特定のセルにデータが入るように吐き出すのであれば、
プログラムでCSVファイルを作成し、StreamWriterクラスでデータを落とし込んで、EXCELでそのCSVファイルを開いてXLSファイルに変換するのが一番手っ取り早いと思います。

参考URL:http://www.atmarkit.co.jp/fdotnet/dotnettips/487csvparser/csvparser.html

投稿日時 - 2007-06-20 16:52:36

この質問に関連するQ&A
  • Visual StudioとSQLServer
  • 大量のデータ(数十万行のテーブルが10個ほど)を扱うことになり、SQLServerの使用を考えています。 PCのOSはWindows7です。 将来的には解析などのプログラムを作成するためにVisual...
  • Visual Studio2005で使うデータベースについて
  • 初めて投稿します。 初心者なのでアドバイスをお願いします。 数日後に、Visual Studio2005 Professional Edition を使ってソフト開発をする予定です。 今までExcel...
  • Visual Studio 2008コマンドプロンプトのinclude
  • Visual Studio 2008コマンドプロンプトのincludeファイルのパス設定について、教えてください。 C言語で書かれたOpencvのサンプルコード「ヒストグラムの描画」を実行するとエラー...
合わせてチェックしたい
PR

OKWaveのオススメ