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