NonSoft

エクセルを操作する小技のサンプル(C#.NET)


 サンプル(ソース/コード)
<このサンプルの概要>
エクセルを起動しいろんな操作をするサンプルソース(C#.NET)です。

エクセルは便利ですね。
表形式の画面を表示するとすぐに、エクセルやCSVに出力したいという要望が発生します。
特にDataGridViewとエクセルの関係は深そうです。そんな時に役立つ小技のサンプルです。

具体的には以下の事を試しています。
 1.エクセル起動
 2.エクセル非表示
 3.ブック追加
 4.シート選択
 5.カラム幅設定
 6.カラムの書式設定
 7.セルの選択
 8.セルのフォント設定
 9.セルの背景色設定
10.セルの文字色設定
11.エクセル表示
12.エクセルを閉じる

エクセル関係のその他ののサンプルはこちらです。
エクセルを使用した帳票印刷のサンプル(VB.NET)
エクセルを使用した帳票印刷のサンプル(C#.NET)
エクセルを操作する小技のサンプル(VB.NET)
エクセルを起動しいろいろ操作するサンプル(VB6)
エクセルを起動しいろいろ操作するサンプル(VBS)
エクセルへデータをコピーし表示するサンプル(VB6)

using Excel = Microsoft.Office.Interop.Excel;
using System.Runtime.InteropServices;

public partial class Form2 : Form
{
    // Excel.Applicationを有効にするため参照の追加を行なってください
    // [参照の追加],[COM],[Microsoft Excel *.* Object Library]
    // 参照設定に[Excel](ファイル名:Interop.Excel.dll)が追加されます
    Excel.Application oXlsApp;
    Excel.Worksheet oSheet;
    Excel.Range oRange;
    private void button1_Click(object sender, EventArgs e)
    {
        // エクセル起動
        oXlsApp = new Excel.Application();

        // エクセル非表示
        oXlsApp.Application.Visible = false;
        oXlsApp.Application.DisplayAlerts = false;

        // ブック追加
        oXlsApp.Application.Workbooks.Add(Type.Missing);

        // シート選択
        oSheet = (Excel.Worksheet)oXlsApp.Worksheets[1];

        // カラム幅設定
        //oSheet.Columns("C").ColumnWidth = 20
        ((Excel.Range)oSheet.get_Range(
            oSheet.Cells[1, 3],
            oSheet.Cells[65535, 3])).ColumnWidth = 20;

        // カラムの書式設定の表示形式を文字列にする
        //oSheet.Columns("C").NumberFormatLocal = "@"
        ((Excel.Range)oSheet.get_Range(
            oSheet.Cells[1, 3],
            oSheet.Cells[65535, 3])).NumberFormatLocal = "@";

        // セル選択
        //oRange = oSheet.Range("C3")
        oRange = oSheet.get_Range(
            oSheet.Cells[3, 3], oSheet.Cells[3, 3]);

        // セルのフォント設定
        oRange.Font.Size = 16;
        oRange.Font.Name = "MS 明朝";

        // セルにデータ書込み
        //oRange.Value = "1234567890"
        oRange.Value2 = "1234567890";

        // セルの背景色設定
        oRange.Interior.Color = 0x44FFFF;

        // セルの文字色設定
        oRange.Font.Color = 0xFF0000;

        // エクセル表示
        oXlsApp.Application.Visible = true;
    }

    private void Form2_FormClosing(
        object sender, FormClosingEventArgs e)
    {
        // エクセルを閉じる
        if (oXlsApp != null) oXlsApp.Quit();
        oRange = null;
        oSheet = null;
        oXlsApp = null;
    }
}