トップ  >  サンプルソース  >  EXCEL出力(C#.NET)

EXCEL出力(C#.NET)

2010年01月14日

Excelを起動してデータを出力(転送/保存)するサンプル(ソース/コード)です。引数はエクセルファイルPATH、シート番号、行番号、カラム番号、転送データ(2次元配列)で一気にデータを転送します。

関連するサンプルはこちらです。
EXCEL操作(VB.NET) / EXCEL操作(C#.NET) / EXCEL出力(VB.NET)

EXCEL関係のその他のサンプルはこちら「EXCEL関係」でお探しください。

// -------------------------------------------------------
// Excelを起動してデータを出力するサンプル(C#.NET/VS2005)
// Excelを参照設定する必要があります
// [参照の追加],[COM],[Microsoft Excel *.* Object Library]
// using Excel = Microsoft.Office.Interop.Excel; (必要)
// using System.Runtime.InteropServices; (必要)
private void button1_Click(object sender, EventArgs e)
{
    ExcelSendData(@"D:\Temp\Book1.xls",
        2, 3, 4, new string[2, 3] {
        { "1A", "1B", "1C" },
        { "2A", "2B", "2C" } });
}

/// <summary>
/// Excel起動およびデータ転送
/// </summary>
/// <param name="xls">ExcelファイルPATH</param>
/// <param name="sht">シート番号(1から)</param>
/// <param name="row">行番号(1から65536)</param>
/// <param name="col">カラム番号(1から256)</param>
/// <param name="dat">転送データ(2次元配列)</param>
private void ExcelSendData(
    String xls, int sht, int row, int col,
    object[,] dat)
{
    Excel.Application objExcel = null;
    Excel.Workbooks objWorkBooks = null;
    Excel.Workbook objWorkBook = null;
    Excel.Worksheet objWorksheet = null;

    // EXCEL起動
    objExcel = new Excel.Application();

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

    // ブック取得
    objWorkBooks = objExcel.Workbooks;
    objWorkBook = objWorkBooks.Open(xls,
        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, Type.Missing);

    // アクティブシート設定
    objWorksheet =
        (Excel.Worksheet)objWorkBook.Sheets[sht];
    ((Excel._Worksheet)objWorksheet).Activate();

    // エクセル表示
    objExcel.WindowState =
        Excel.XlWindowState.xlMaximized;
    objExcel.DisplayAlerts = true;
    objExcel.Visible = true;

    // データコピー(出力)
    objWorksheet.get_Range(
        objWorksheet.Cells[row, col],
        objWorksheet.Cells[
        row + dat.GetLength(0) - 1,
        col + dat.GetLength(1) - 1]).Value2 = dat;

    // 保存した事にする
    objWorkBook.Saved = true;

    // EXCEL終了処理
    if (objWorksheet != null)
    {
        // objWorksheetを解放
        Marshal.ReleaseComObject(objWorksheet);
        objWorksheet = null;
    }
    if (objWorkBook != null)
    {
        // objWorkBookを解放
        Marshal.ReleaseComObject(objWorkBook);
        objWorkBook = null;
    }
    if (objWorkBooks != null)
    {
        // objWorkBooksを解放
        Marshal.ReleaseComObject(objWorkBooks);
        objWorkBooks = null;
    }
    if (objExcel != null)
    {
        // EXCELを閉じる
        //objExcel.Quit();
        // objExcelを解放
        Marshal.ReleaseComObject(objExcel);
        objExcel = null;
    }
    // オブジェクトを確実に削除
    System.GC.Collect();
}
// -------------------------------------------------------
スポンサーサイト

EXCEL出力(VB.NET) | トップページへ戻る | DataGridView 行追加/行削除(C#/VB.NET)

このページのトップに戻る

コメント

名前
題名
メールアドレス
WEBサイト
 
コメント
パスワード
  管理者にだけ表示を許可する

このページのトップに戻る

トラックバック

このページのトップに戻る