Export to excel

  Private Function ExportToExcel(ByVal MyTab As DataTable, ByVal strRptName As String, ByVal    strReportTemplate As String, ByVal strReportHeader As String) As Boolean

        Dim XLApplication As New Excel.Application
        Dim XLBook As Excel.Workbook
        Dim XLSheet As Excel.Worksheet

        Dim IRow, ICol As Int32
        Dim i, j As Int32


        Try

            '  Operation File
            If Dir(strReportTemplate) = "" Then
                MsgBox("Can not find out REPORT TEMPLATE!!", MsgBoxStyle.Exclamation, "Oracle Report")
                Exit Function
            Else
                FileCopy(strReportTemplate, strRptName)
            End If

            IRow = MyTab.Rows.Count
            ICol = MyTab.Columns.Count

            Dim DataArray(IRow, ICol) As Object
            Dim StrValue As String

            XLBook = XLApplication.Workbooks.Open(strRptName)  ''open a .xls file
            XLSheet = XLBook.Worksheets(1)

            For i = 0 To MyTab.Rows.Count - 1

                For j = 0 To MyTab.Columns.Count - 1

                    StrValue = IIf(IsDBNull(MyTab.Rows(i).Item(j)), "", MyTab.Rows(i).Item(j))
                    DataArray(i, j) = StrValue

                Next

            Next

            'Fill the Caption
            For i = 0 To MyTab.Columns.Count - 1
                XLSheet.Cells(3, i + 1) = MyTab.Columns(i).Caption
            Next

            XLSheet.Range("A2").Value = strReportHeader

            XLSheet.Range("A4").Resize(IRow, ICol).Value = DataArray 'Fill the value

            XLBook.Save()
            XLSheet = Nothing
            XLBook = Nothing
            XLApplication.Quit()
            XLApplication = Nothing
            GC.Collect()


        Catch ex As Exception
            MessageBox.Show(" Data Extraction Error! Pls contact MIS!!!", "Oracle Report")
            ExportToExcel = False
            Exit Function

        End Try

        ExportToExcel = True

    End Function

posted @ 2011-04-20 08:46  天水一阶  阅读(365)  评论(0编辑  收藏  举报