• 締切済み

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

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

みんなの回答

noname#97729
noname#97729
回答No.3

参考になるか分かりませんが、 VBSでExcelの扱い方がいろいろあります。 http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/default.mspx

  • J_H
  • ベストアンサー率57% (11/19)
回答No.2

プロジェクトにアセンブリ参照を追加してください。 リファレンスは「参考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
nijith
質問者

お礼

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

  • zzz_sheep
  • ベストアンサー率21% (36/166)
回答No.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

関連するQ&A

  • C言語でエクセルを起動し、CSVファイルを見る方法

    C言語でエクセルを起動させ、CSVファイルを見たいのですが、何か方法はありませんか? また、ビューアを起動させ、画像ファイルを見る方法もありませんか? ちなみにコンパイラは、「Visual Studio 2005 コマンド プロンプト」です。 初心者ですので、詳しく説明していただけるとありがたいです。 よろしくお願いいたします。

  • VBA?C?なにを使えばよいでしょうか

    あるアプリケーションにデータ登録をするときに、現在はコマンドプロントから コマンド(c:\>xxxxx -***** "name" "age" ・・・・)を打って登録しています。 最近急に、データ量が増えて手動で登録するのが困難になってきました。 現在このデータはエクセルで保存してあります。これからも、エクセルで 管理していく予定です。 そこで、エクセルに入力したものをエクセルVBAを使ってセルからデータを 取り出して、1件づつ自動でアプリケーションに登録するコマンドを発行したい と考えています。 それか、エクセルのデータをCSV形式にしてC言語で作ろうかとも思っています。 実現したいことは ・データはエクセルで管理している。 ・毎回手動でコマンドをたたいていたのを、プログラムで実現させたい。 (DOSにコマンドを発行する) ・データの入力はCSVを読むか、エクセルシート上でセルからひっぱって くるか。 VBA、Cともに初心者です。どの言語でどういう風な形で プログラムを作ればよいかわからず困っています。 実現するよい方法をおしえてください。よろしくおねがいします。

  • エクセルでC1のセルに出力をするというのは、プログ

    エクセルでC1のセルに出力をするというのは、プログラミングでいう ターミナルにprintで出力するechoで出力するというのとおなじですか? プログラミング初心者です

  • Excelのセル内にある特定文字で改行させたい

    ある汎用のシステムから出力されるテキスト(文章)をCSV形式のデータをEXCELデータに変換しています。そのEXCELに変換されたデータは、文章です。 1点問題があります。そのセル内の文章は、ある特定の記号を改行の代わりとして、連続したテキスト文章になっているため、非常に読み辛いものになっていますいます。その改行を意味する特定記号は、複数個存在し、セル内の個数は一定ではありません。  そのため、読み辛さを解消するためい、その特定記号をセル内での改行に置換させる、マクロまたはVBAでの一括処理することが出来ないでしょうか。置換処置後は、特定記号は不要です。 なお、(1)改行を意味する特定記号は、「~|」です。~と|の組み合わせで、それはそれぞれ半角表記されています。(2)1ファイルにおける対象レコード(行)は、約3,000~10,000行あり、手作業での処理は不可能です。 宜しくお願いします。

  • セルの比較

    初投稿させていただきます。宜しくお願い致します。 office系のソフトは初心者で何とかならないものかと悩んでます。 excelで特定のセルのデータと行全体を比較して、一致する文字列を含んだセルを返してほしいのです。 それを各セルごとに行い、まとめて別のシートに出力させることは可能でしょうか? たとえば   A    B    C 1 あい  い   う 2 いか  う   えい 3 うみ  え   お 4 えい  お   か 5 うさ  か   き があって Cの各セルとA行全体を比較して結果を別に出力  ・・・ D 1    A3,A5 2    A4 3 4 5 ない場合は空白でも×でもいいのですが こんな感じにできないでしょうか。 実際のデータはファイルが別になっていてファイルAのC行とファイルBのB行のセル(200個くらい)との比較といった感じです。 いろいろ調べては見たのですが、うまくいかず・・・ 欲張った内容かも知れません。 すみませんがどなたかいい方法を教えて頂けませんか。

  • Excelの特定のセルに色をつける

    VB2005Expressを使用しています。 データをExcelに出力するプログラムを作成したのですが、 特定のセル(タイトル部)に色をつけたいと思っています。 罫線を引くことは調べてできるようになったのですが、色の付け方は 調べ方が悪いせいか見つかりません。 どなたかご存知の方がいらっしゃいましたらご教授願います。 よろしくお願いします。

  • Windowsアプリケーションと.NETアプリケー

    こんばんは。 開発初心者です。 Visual StudioとOracleデータベースで簡単な購買管理の開発しようと思っています。 そこで、ご質問ですが、Windowsアプリケーションと.NETアプリケーションの違いを教えてください。

  • C# コンソールアプリケーション 追加

    visual studio 2013でC#のコンソールアプリケーションを作成したのですがコンソールアプリケーションにボタンを追加する方法はどうすれば良いのでしょうか?

  • C#でのEXCELの起動方法に関して

    現在、以下のようなC#を用いた環境でEXCELファイルにデータをOUTPUするような記述をして いますが、Visual Studio がインストールされている環境では問題なく出力されるものの、その他 の環境では下記のようなエラーが表示されてしまいます。 《環境》 Windows XP  VisualStudio 2008 C#  EXCEL 2000 参照設定で、Microsoft Excel 9.0 Object Libraryを追加しており、設定自体に問題はないかとは 思います。 但し、自身で色々調べてみたところ、この方法(参照設定の追加)では、EXCEL2000は起動できない ような。。。 《エラー内容》 アプリケーションのコンポーネントで、ハンドルされていない例外が発生しました。 [続行]をクリックすると、アプリケーションはこのエラーを無視し、続行しようとします。 [終了]をクリックすると、アプリケーションは直ちに終了します。 ファイルまたはアセンブリ 'Interop.Excel, Version=1.3.0.0. Culture=neutral,PublicKey Token=null7 またはその依存関係の1つが読み込めませんでした。 指定されたファイルが見つかりません。 というエラーが表示されてしまいます。 原因がわかるようでしたら教えて頂きたいと思います。 よろしくお願いします。

  • エクセルVBで特定のセルのデータを削除する方法

    はじめて質問させて頂きます。 エクセルで、特定のセルに特定の入力があった場合に、特定のデータを削除する方法を教えてください。 エクセルのバージョンは、2010です。 VBのバージョンは、7.0です。 例えば、 A1セルに、 1 と入力した際に、C1からG1までのデータを削除する。 A2セルに、 1 と入力した際に、C2からG2までのデータを削除する。                     ・                     ・                     ・ A10セルに、 1 と入力した際に、C10からG10までのデータを削除する。 If Range("A1") = "1" Then Range("C1:G1").Clear End If と、やってみましたが、できませんでした。 宜しくお願い致します。