This post is a continuation of the previous post
How to Export Dataset to Excel Using XML VB.Net & SQL Server
this time we will use Microsoft.Interop to export from the dataset to excel file.
Import NameSpace
Imports System.Data.SqlClient Imports System.Data Imports System.IO.Directory Imports Microsoft.Office.Interop
Load data into Dataset
Private Function load_data_into_dataset() As DataSet Dim value As New DataSet Using iKon = New SqlConnection(sql_connection_string) If iKon.State = ConnectionState.Open Then iKon.Close() iKon.Open() Using iCmd = New SqlCommand("Select * from cars", iKon) Using adapter = New SqlDataAdapter adapter.SelectCommand = iCmd adapter.Fill(value) End Using End Using End Using Return value End Function
Load Data Into Datagridview
Private Sub Btn_load_dataset_Click(sender As Object, e As EventArgs) Handles Btn_load_dataset.Click DataGridView1.DataSource = load_data_into_dataset.Tables(0) End Sub
Export to Excel Using Microsoft.Interop.Excel
Private Sub export_database_to_excel_using_office_interop(ByVal dataset As DataSet) Dim excel_app As Excel.Application Dim excel_book As Excel.Workbook Dim excel_sheet As Excel.Worksheet excel_app = CreateObject("excel.application") excel_book = excel_app.Workbooks.Add(Type.Missing) excel_sheet = excel_book.Worksheets(1) Dim col_index As Integer = 0 Dim row_index As Integer = 0 'create columns header For Each col As DataColumn In dataset.Tables(0).Columns col_index = col_index + 1 excel_sheet.Cells(1, col_index) = col.ColumnName Next 'insert row For Each row As DataRow In dataset.Tables(0).Rows row_index = row_index + 1 col_index = 0 For Each col As DataColumn In dataset.Tables(0).Columns col_index = col_index + 1 excel_sheet.Cells(row_index + 1, col_index) = row.Item(col) Next Next Dim file_name As String = Application.StartupPath & "\Export" & Format(DateTime.Now, "ddMMyyHHmmss") & ".xls" excel_sheet.Columns.AutoFit() excel_book.SaveAs(file_name, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing) release_object(excel_sheet) excel_book.Close(False, Type.Missing, Type.Missing) release_object(excel_book) excel_app.Quit() release_object(excel_app) GC.Collect() MsgBox("success") System.Diagnostics.Process.Start(file_name) End Sub Private Sub release_object(ByVal obj As Object) Try While (System.Runtime.InteropServices.Marshal.ReleaseComObject(obj) > 0) End While Catch ex As Exception Finally obj = Nothing End Try End Sub Private Sub btn_export_using_interop_Click(sender As Object, e As EventArgs) Handles btn_export_using_interop.Click export_database_to_excel_using_office_interop(load_data_into_dataset) End Sub
Dataset successfully exported into excel using Microsoft.Interop without using any format.
if you want to use this article in your blog please also include this link as a source. thank you.
No comments:
Post a Comment