fc2ブログ

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

DataGridView EXCEL出力(C#/VB.NET)

2010年02月10日

DataGridViewの全てのセルのデータをEXCELに出力(表示)するサンプル(ソース/コード)です。こちらの DataGridViewに便利なメソッドを追加するサンプル にメソッドを追加してお試し頂けます。少し修正すればこのサンプルだけで使用出来ます。

DataGridViewに便利なメソッドを追加するその他のサンプルはこちらです。
DataGridView EXCEL読込(C#/VB.NET)
DataGridView CSV読込(C#/VB.NET)
DataGridView CSV出力(C#/VB.NET)
DataGridView HTML出力(C#/VB.NET)
DataGridView その他のサンプルソース

' -----------------------------------------------------------
' DataGridViewをEXCELに出力するサンプル(VB.NET/VS2005)
' Excelを参照設定する必要があります
' [参照の追加],[COM],[Microsoft Excel *.* Object Library]
' Imports Microsoft.Office.Interop (必要)
' Imports System.Runtime.InteropServices (必要)
Public Sub SaveExcel()
    ' EXCEL起動
    Dim objExcel As Excel.Application = Nothing
    Dim objWorkBook As Excel.Workbook = Nothing
    objExcel = New Excel.Application
    objWorkBook = objExcel.Workbooks.Add

    ' DataGridViewのセルのデータ取得
    Dim v As String(,) = New String( _
        Me.Rows.Count - 1, Me.Columns.Count - 1) {}
    For r As Integer = 0 To Me.Rows.Count - 1
        For c As Integer = 0 To Me.Columns.Count - 1
            Dim dt As String = ""
            If Me.Rows(r).Cells(c).Value _
                Is Nothing = False Then
                dt = Me.Rows(r).Cells(c).Value.ToString()
            End If
            v(r, c) = dt
        Next
    Next

    ' EXCELにデータ転送
    Dim ran As String = "A1:" & _
        Chr(Asc("A") + Me.Columns.Count - 1) & Me.Rows.Count
    objWorkBook.Sheets(1).Range(ran) = v

    ' エクセル表示
    objExcel.Visible = True

    ' EXCEL解放
    Marshal.ReleaseComObject(objWorkBook)
    Marshal.ReleaseComObject(objExcel)
    objWorkBook = Nothing
    objExcel = Nothing
End Sub
' -----------------------------------------------------------

// ----------------------------------------------------------
// DataGridViewをEXCELに出力するサンプル(C#.NET/VS2005)
// Excelを参照設定する必要があります
// [参照の追加],[COM],[Microsoft Excel *.* Object Library]
// using Excel = Microsoft.Office.Interop.Excel; (必要)
// using System.Runtime.InteropServices; (必要)
public void SaveExcel()
{
    // EXCEL起動
    Excel.Application objExcel = null;
    Excel.Workbook objWorkBook = null;
    Excel.Worksheet objWorkSheet = null;
    objExcel = new Excel.Application();
    objWorkBook = objExcel.Workbooks.Add(
        Excel.XlWBATemplate.xlWBATWorksheet);

    // DataGridViewのセルのデータ取得
    String[,] v = new String[
        this.Rows.Count, this.Columns.Count];
    for (int r = 0; r <= this.Rows.Count - 1; r++)
    {
        for (int c = 0; c <= this.Columns.Count - 1; c++)
        {
            String dt = "";
            if (this.Rows[r].Cells[c].Value != null)
            {
                dt = this.Rows[r].Cells[c].Value.
                    ToString();
            }
            v[r, c] = dt;
        }
    }

    // EXCELにデータ転送
    objWorkSheet = (Excel.Worksheet)objWorkBook.Sheets[1];
    objWorkSheet.get_Range(
        objWorkSheet.Cells[1, 1],objWorkSheet.Cells[
        this.Rows.Count,this.Columns.Count]).Value2 = v;

    // エクセル表示
    objExcel.Visible = true;

    // EXCEL解放
    Marshal.ReleaseComObject(objWorkBook);
    Marshal.ReleaseComObject(objExcel);
    Marshal.ReleaseComObject(objWorkSheet);
    objWorkSheet = null;
    objWorkBook = null;
    objExcel = null;
}
// ----------------------------------------------------------

DataGridView CSV読込(C#/VB.NET) | トップページへ戻る | 動きたくない でもトラバ

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

コメント

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

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

トラックバック

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