Public Function ReturnDevAreaPath() As String
Dim strresponse As String
Dim o As New SaveFileDialog
' Dim strwkname As String
Dim ExcelBook, bookname As String
o.Filter = "Excel File (*.xls)|*.xls"
o.Title = "Save Excel Workbook As"
o.Filter = "Excel Spreadsheets (*.xlsx)|*.xlsx"
Dim str As String = "MedicalExcelReport"
o.FileName = str
strresponse = o.ShowDialog()
Application.DoEvents()
If strresponse = 1 Then
Application.DoEvents()
ExcelBook = o.FileName
bookname = ExcelBook
Return ExcelBook
End If
End Function
Function ExportToExcel(ByVal intCreateNew As Integer, ByVal dtGridData As DataTable, ByVal FilePath As String, ByVal StrSheetname As String, Optional ByVal xlApp As Excel.Application = Nothing) As String
Dim xlWorkBook As Excel.Workbook = Nothing
Dim xlWorkSheet As Excel.Worksheet = Nothing
Application.DoEvents()
Try
FrmMain.Cursor = Cursors.WaitCursor
xlApp.DisplayAlerts = False
If intCreateNew = 0 Then
Try
xlApp.Workbooks.Add()
Catch ex As Exception
'Iff x1app is not found
xlApp = New Excel.Application '*** Create excel app only once.
End Try
End If
If IsNothing(FilePath) = True Then
xlWorkSheet = Nothing
xlWorkBook = Nothing
xlApp = Nothing
FrmMain.Cursor = Cursors.Default
Return "Cancelled"
Exit Function
End If
xlApp.Workbooks(1).SaveAs(FilePath)
Application.DoEvents()
xlWorkBook = xlApp.Workbooks.Open(FilePath,, False)
Application.DoEvents()
If intCreateNew = 0 Then
xlWorkSheet = xlWorkBook.Worksheets(xlWorkBook.Worksheets.Count)
Else
xlWorkBook.Worksheets.Add(After:=xlWorkBook.Worksheets(xlWorkBook.Worksheets.Count))
xlWorkSheet = xlWorkBook.Worksheets(xlWorkBook.Worksheets.Count)
End If
xlWorkSheet.Name = StrSheetname
With xlWorkSheet.PageSetup
.PrintGridlines = True
.CenterHeader = StrSheetname
.Zoom = False
.Orientation = Excel.XlPageOrientation.xlLandscape
End With
Dim dtRowCount As Integer = dtGridData.Rows.Count
Dim dtColCount As Integer = dtGridData.Columns.Count
Dim objXlColHeaderData(1, dtGridData.Columns.Count) As Object
Application.DoEvents()
For i As Integer = 0 To dtColCount - 1
objXlColHeaderData(0, i) = dtGridData.Columns(i).ColumnName
Next
Dim objXlData(dtRowCount, dtColCount) As Object
For iRow As Integer = 0 To dtRowCount - 1
Application.DoEvents()
For iCol As Integer = 0 To dtColCount - 1
Application.DoEvents()
If Not IsDBNull(dtGridData.Rows(iRow).Item(iCol)) Then
Select Case StrSheetname.ToUpper
Case "DIRECTORY"
objXlData(iRow, iCol) = "'" & dtGridData.Rows(iRow).Item(iCol)
Case "INTERPRETER DIRECTORY"
objXlData(iRow, iCol) = "'" & dtGridData.Rows(iRow).Item(iCol)
Case "DIARY"
objXlData(iRow, iCol) = "'" & dtGridData.Rows(iRow).Item(iCol)
Case Else
objXlData(iRow, iCol) = dtGridData.Rows(iRow).Item(iCol)
'objXlData(iRow, iCol) = "'" & dtGridData.Rows(iRow).Item(iCol)
End Select
Else
objXlData(iRow, iCol) = ""
End If
Next
Next
Dim xlRange As Excel.Range = xlWorkSheet.Range("A1")
xlRange = xlRange.Resize(dtRowCount, dtColCount)
xlRange.Value2 = objXlColHeaderData
xlWorkSheet.Range(xlWorkSheet.Cells(1, 1), xlWorkSheet.Cells(1, dtColCount)).Font.Bold = True
Select Case StrSheetname.ToUpper
'Formatting the dates on excel please check the column names refer stored procedure for columns
Case "DIY"
xlRange = xlWorkSheet.Range("C1")
xlRange.EntireColumn.NumberFormat = "dd/mm/yyyy"
'xlRange = xlWorkSheet.Range("D1")
'xlRange.EntireColumn.NumberFormat = "hh:mm"
'xlRange = xlWorkSheet.Range("E1")
'xlRange.EntireColumn.NumberFormat = "hh:mm"
For Each strX As String In New String() {"D", "E"}
xlRange = xlWorkSheet.Range(strX + "1")
xlRange.EntireColumn.NumberFormat = "hh:mm"
Next
xlRange.EntireColumn.NumberFormat = "dd/mm/yyyy"
Next
End Select
xlRange = xlWorkSheet.Range("A2")
xlRange.EntireColumn.NumberFormat = "#,##0.00"
xlRange = xlRange.Resize(dtRowCount, dtColCount)
' xlRange = xlRange.Resize(dtRowCount + 1, dtColCount + 1)
xlRange.Value2 = objXlData
'With xlWorkSheet
' .Range(.Cells(1, 1), .Cells(1, 1)).Select()
'End With
With xlWorkSheet.Application.ActiveWindow
.SplitColumn = 0
.SplitRow = 1
End With
With xlWorkSheet
.Cells.EntireColumn.AutoFit()
.Cells.EntireRow.AutoFit()
.Application.ActiveWindow.FreezePanes = True
End With
FrmMain.Cursor = Cursors.WaitCursor
Application.DoEvents()
CType(xlApp.ActiveWorkbook.Sheets(1), Excel.Worksheet).Select()
xlWorkBook.SaveAs(,,,, False)
Catch ex As Exception
MessageBox.Show(ex.Message, "ErrorIn ExportToExcel", MessageBoxButtons.OK, MessageBoxIcon.Error)
xlWorkSheet = Nothing
xlWorkBook = Nothing
xlApp = Nothing
FrmMain.Cursor = Cursors.Default
Return "False"
Finally
FrmMain.Cursor = Cursors.Default
End Try
Return "True"
End Function
Public Sub OpenExcel(ByVal StrExcelLocation As String)
Try
Dim xlapp As Object
xlapp = CreateObject("Excel.Application")
' Dim xlapp = New Excel.Application
xlapp.Visible = True
xlapp.Workbooks.Open(StrExcelLocation)
Catch ex As Exception
FormatMessage(11, " Excel Update : ", StrExcelLocation, "Excel Update")
End Try
End Sub