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;
}
// ----------------------------------------------------------