C#でExcelのファイルを操作するプログラムを書いてください。


1.c:¥wb1.xls というファイルを開く
2.そのファイルのA列にデータが入っている数を取得する

*A列はA1からA?(不定)で、連続した値(string)が入っています。


VBAでいうと、
Range(”A1”, Selection.End(xlDown)).Count
というだけの話です(またはCurrentRegion.Columns.Countでも大丈夫かな?)

C#でエクセルのオブジェクトを作るのがうまくいかず、どなたかにお手本を見せてもらおうと思い、お願いする次第です。

よろしくお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2004/12/04 23:52:40
  • 終了:--

回答(1件)

id:cx20 No.1

cx20回答回数607ベストアンサー獲得回数1082004/12/05 05:00:49

ポイント40pt

http://support.microsoft.com/kb/302084/JA/

Microsoft Visual C# .NET を使用して Microsoft Excel を自動化する方法

URL はマイクロソフトの Knowledge Base にある C# でのサンプルです。

このサンプルをベースに試しにコードを書いてみました。

# 回答投稿時に、コードの記号が一部、全角に変換されてしまいますので、

# お手数ですが、「”(ダブルクォーテーション)」「¥(円マーク)」と

# 「 (全角スペース)」は、半角に修正してください。

C# で「Selection オブジェクト」を扱う方法が分からなかった為、

かわりに「ActiveCell オブジェクト」を利用しています。

private void button1_Click(object sender, System.EventArgs e)

{

  Excel.Application oXL;

  Excel._Workbook oWB;

  Excel._Worksheet oSheet;

  Excel.Range oRng;

  

  try

  {

    string strFileName = ”c:¥wb1.xls”; // 読み込むファイル名

  

    oXL = new Excel.Application();

    oXL.Visible = true;

    

    // 指定したファイルをオープン

    oWB = (Excel._Workbook)(oXL.Workbooks.Open( strFileName,

      Missing.Value, Missing.Value, Missing.Value, Missing.Value,

      Missing.Value, Missing.Value, Missing.Value, Missing.Value,

      Missing.Value, Missing.Value, Missing.Value, Missing.Value,

      Missing.Value, Missing.Value));

    

    oSheet = (Excel._Worksheet)oWB.ActiveSheet;

    // Range(”A1”, Selection.End(xlDown)) に相当

    oRng = oSheet.get_Range( ”A1”, oXL.ActiveCell.get_End(Excel.XlDirection.xlDown) );

    // 選択したデータの個数を表示

    MessageBox.Show( oRng.Count.ToString() );

  }

  catch( Exception theException )

  {

    String errorMessage;

    errorMessage = ”Error: ”;

    errorMessage = String.Concat( errorMessage, theException.Message );

    errorMessage = String.Concat( errorMessage, ” Line: ” );

    errorMessage = String.Concat( errorMessage, theException.Source );

    

    MessageBox.Show( errorMessage, ”Error” );

  }

}

http://support.microsoft.com/kb/302096/JA/

Visual C# で Excel を自動化して、配列による範囲内へのデータ入力および範囲内からのデータ取得を行う方法

URL はマイクロソフトの Knowledge Base にあった

C# での Excel オートメーションのサンプルコードです。

URL は Code Project にあった Excel オートメーションのサンプルコードです。

http://support.microsoft.com/kb/311452/JA/

[INFO] Visual Studio .NET を使用して Microsoft Office ソリューションを開発する

ページ内の、

「マネージ コード (Visual Basic または Visual C#) を使用したオートメーションのサンプル」

に、サンプルへのリンクが載っています。

参考まで。

URL はオートメーションの開発する上での参考情報です(英語)

id:expansion05

ありがとうございます。私もSelectionのセットができなかったのです^^;

非常に参考になりました ありがとうございました。

2004/12/05 20:12:03
  • id:senior_advisor
    少し話がずれますが、下記の製品が便利だと思います。
    SpreadsheetGear
    http://www.xlsoft.com/jp/products/SSG/index.html
  • id:Seasons
    私の場合、C#から標準で使えることが知らなくて、
    自分で作ってしまいました。
    まだ、α的な扱いですが、C++で作ってた物をC#に移行したものです。

    ご参考までに。
    http://d.hatena.ne.jp/Seasons/searchdiary?word=%2a%5bC%23%a4%c7Excel%c1%e0%ba%ee%5d

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません