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

EXCEL出力(VB.NET)

2010年01月14日

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

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

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

' --------------------------------------------------------
' Excelを起動してデータを出力するサンプル(VB.NET/VS2005)
' Excelを参照設定する必要があります
' [参照の追加],[COM],[Microsoft Excel *.* Object Library]
' Imports Microsoft.Office.Interop (必要)
' Imports System.Runtime.InteropServices (必要)
Private Sub Button1_Click( _
    ByVal sender As System.Object, _
    ByVal e As System.EventArgs) _
    Handles Button1.Click

    ExcelSendData("D:\Temp\Book1.xls", _
        2, 3, 4, New String(1, 2) { _
        {"1A", "1B", "1C"}, _
        {"2A", "2B", "2C"}})
End Sub

''' <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>
''' <remarks></remarks>
Private Sub ExcelSendData( _
    ByVal xls As String, _
    ByVal sht As Integer, _
    ByVal row As Integer, _
    ByVal col As Integer, _
    ByVal dat As Object(,))

    Dim objExcel As Excel.Application = Nothing
    Dim objWorkBooks As Excel.Workbooks = Nothing
    Dim objWorkBook As Excel.Workbook = Nothing
    Dim objWorksheet As Excel.Worksheet = Nothing

    ' EXCEL起動
    objExcel = New Excel.Application()

    ' エクセル非表示
    objExcel.Visible = False
    objExcel.DisplayAlerts = False

    ' ブック取得
    objWorkBooks = objExcel.Workbooks
    objWorkBook = objWorkBooks.Open(xls)

    ' アクティブシート設定
    objWorksheet = objWorkBook.Sheets(sht)
    objWorksheet.Activate()

    ' エクセル表示
    objExcel.WindowState = _
        Excel.XlWindowState.xlMaximized
    objExcel.DisplayAlerts = True
    objExcel.Visible = True

    ' データコピー(出力)
    objWorksheet.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 Is Nothing = False Then
        ' objWorksheetを解放
        Marshal.ReleaseComObject(objWorksheet)
        objWorksheet = Nothing
    End If
    If objWorkBook Is Nothing = False Then
        ' objWorkBookを解放
        Marshal.ReleaseComObject(objWorkBook)
        objWorkBook = Nothing
    End If
    If objWorkBooks Is Nothing = False Then
        ' objWorkBooksを解放
        Marshal.ReleaseComObject(objWorkBooks)
        objWorkBooks = Nothing
    End If
    If objExcel Is Nothing = False Then
        ' EXCELを閉じる
        'objExcel.Quit()
        ' objExcelを解放
        Marshal.ReleaseComObject(objExcel)
        objExcel = Nothing
    End If
    ' オブジェクトを確実に削除
    System.GC.Collect()
End Sub
' --------------------------------------------------------
スポンサーサイト

漢字コード変換(ツール) | トップページへ戻る | EXCEL出力(C#.NET)

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

コメント

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

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

トラックバック

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