none
C#を使用してEXCELデータを取得しようとしています。 RRS feed

  • 質問

  • C#を勉強してる素人なのですが、C#でEXCELのデータを読み込もうと思っています。

    ネットで調べて以下の形で取得してみました。

    Microsoft.Office.Interop.Excel.Application ExcelApp = new Microsoft.Office.Interop.Excel.Application();
    Workbook wb = ExcelApp.Workbooks.Open(ExcelBookFileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
    			Worksheet ws1 = wb.Sheets[1];
    			ws1.Select(Type.Missing);
    			Range range = ExcelApp.get_Range("A1"Type.Missing);
    			if (range != null)
    			{
    				var val = range.Value2;
    				textBox1.Text += Convert.ToString(val);				
    			}

    EXCELのSheets1の"A1"には日付で”2013年12月”で書いてますが

    以下の形でデータを取得するとtextbox1には”41613.2857142857”で出力されます。

    何かいい方法はありませんか?お願いします。

    2012年7月15日 14:01

回答

  • 質問するときは .Net や Excel のバージョンを記載しましょう。

    こんな感じかな。
    var val = DateTime.FromOADate(cell.Value2);

    それと、textBox1 がもし、 System.Windows.Forms.TextBox なら
    textBox1.Text += str

    ではなく
    textBox1.Append(str);

    とするべきです。

    • 回答の候補に設定 山本春海 2012年7月17日 8:09
    • 回答としてマーク 山本春海 2012年7月17日 8:10
    2012年7月15日 15:48

すべての返信

  • 質問するときは .Net や Excel のバージョンを記載しましょう。

    こんな感じかな。
    var val = DateTime.FromOADate(cell.Value2);

    それと、textBox1 がもし、 System.Windows.Forms.TextBox なら
    textBox1.Text += str

    ではなく
    textBox1.Append(str);

    とするべきです。

    • 回答の候補に設定 山本春海 2012年7月17日 8:09
    • 回答としてマーク 山本春海 2012年7月17日 8:10
    2012年7月15日 15:48
  • ご指摘と回答ありがとうございます。

    おかげさまでうまくできました。

    ほんとありがとうございました。

    2012年7月15日 16:39