Как экспортировать данные выбранных столбцов из базы данных в excel с помощью VB.NET-что?
У меня есть только одна кнопка на моей форме windows, кнопка, которая выполняет экспорт данных из базы данных в excel.
Он работает при экспорте, но все эти столбцы в базе данных были экспортированы. Я хочу экспортировать только те конкретные/выбранные/нужные столбцы. Я не хочу экспортировать все столбцы. Я также хочу экспортировать выбранные столбцы из базы данных в выбранные столбцы в excel. Например: column1, column4 и column 6 данные базы данных, которые будут экспортированы в столбцы: A,C,D excel. Надеюсь, вы мне поможете. Спасибо.
Что я уже пробовал:
Я попробовал код ниже, но он экспортирует все столбцы.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim dbSource As String Dim sql As String Dim sqlcon As New OleDb.OleDbConnection Dim ds As New DataSet Dim dbProvider As String Dim i, j As Integer Dim xlApp As Excel.Application Dim xlWorkBook As Excel.Workbook Dim xlWorkSheet As Excel.Worksheet Dim misValue As Object = System.Reflection.Missing.Value xlApp = New Excel.Application xlWorkBook = xlApp.Workbooks.Add(misValue) xlWorkSheet = xlWorkBook.Sheets("sheet1") dbProvider = "Provider=Microsoft.ACE.OLEDB.15.0;" dbProvider = "Provider=Microsoft.ACE.OLEDB.12.0;" dbSource = "Data Source =psipop.accdb;Jet OLEDB:Database Password=cscfo13poppsi; " sqlcon.ConnectionString = dbProvider & dbSource sql = "SELECT * FROM publicationinfo" Dim dscmd = New OleDb.OleDbDataAdapter(sql, sqlcon) dscmd.Fill(ds) For i = 0 To ds.Tables(0).Rows.Count - 1 For j = 0 To ds.Tables(0).Columns.Count - 1 xlWorkSheet.Cells(i + 18, j + 1) = ds.Tables(0).Rows(i).Item(j) '+18 here is the rownumber(i) and +1 is the columnnumber(j) Next Next xlWorkSheet.SaveAs("C:\Users\Admin\Desktop\vbexcel.xlsx") xlWorkBook.Close() xlApp.Quit() releaseObject(xlApp) releaseObject(xlWorkBook) releaseObject(xlWorkSheet) sqlcon.Close() MsgBox("You can find the file C:\Users\Admin\Desktop\vbexcel.xlsx") End Sub Private Sub releaseObject(ByVal obj As Object) Try System.Runtime.InteropServices.Marshal.ReleaseComObject(obj) obj = Nothing Catch ex As Exception obj = Nothing Finally GC.Collect() End Try End Sub