|
Question : Create an excel sheet programmatically using VB.NET
|
|
Hello experts, I'm developing a desktop application. I have a data table that contains two columns and about 150 row. I wanna use the VB.NET to create an excel file that contains the data in that datatable. So, the problem that I cant loop to add the data in the excel sheet. Thank you all for your expected response in advance.
|
|
Answer : Create an excel sheet programmatically using VB.NET
|
|
procedure below will take two arguments: excel file path and a datatable with data and will write the data to the specified excel filename
Public Sub WriteToExcelSpreadsheet(ByVal fileName As String, ByVal dt As System.Data.DataTable) Dim iCol, iRow, iColVal As Integer Dim missing As Object = System.Reflection.Missing.Value Dim bNew As Boolean Dim i As Integer ' Open the document that was chosen by the dialog Dim aBook As Excel.Workbook Try ''re-initialize excel app ExlApp = New Excel.Application
If ExlApp Is Nothing Then ''throw an exception Throw (New Exception("Unable to Start Microsoft Excel")) Else ''supresses overwrite warnings ExlApp.DisplayAlerts = False ''check if file exists If File.Exists(fileName) Then aBook = ExlApp.Workbooks.Open(fileName) Else aBook = ExlApp.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet) End If With ExlApp .SheetsInNewWorkbook = 1 '.Workbooks.Add() .Worksheets(1).Select() 'For displaying the column name in the the excel file. For iCol = 0 To dt.Columns.Count - 1 ''clear column name before setting a new value .Cells(1, iCol + 1).Value = "" .Cells(1, iCol + 1).Value = dt.Columns(iCol).ColumnName.ToString Next 'For displaying the column value row-by-row in the the excel file. For iRow = 0 To dt.Rows.Count - 1 For iColVal = 0 To dt.Columns.Count - 1 .Cells(iRow + 2, iColVal + 1).Value = Trim(dt.Rows(iRow).ItemArray(iColVal).ToString) Next Next If File.Exists(fileName) Then .ActiveWorkbook().Save() 'fileName) Else .ActiveWorkbook().SaveAs(fileName, missing, missing, missing, missing, missing, Excel.XlSaveAsAccessMode.xlNoChange, missing, missing, missing, missing, missing) End If .ActiveWorkbook.Close() End With Console.Write("File exported sucessfully") End If Catch ex As Runtime.InteropServices.COMException Console.Write("ERROR: " & ex.Message) Catch ex As Exception Console.Write("ERROR: " & ex.Message) Finally ExlApp.Quit() System.Runtime.InteropServices.Marshal.ReleaseComObject(ExlApp) aBook = Nothing ExlApp = Nothing End Try End Sub
|
|
|
|