Экспорт данных из DataGridView в Excel - Visual Basic .NET
Формулировка задачи:
Необходимо экспортировать в Excel, но после того как кликаю по кнопке, то выходит сообщение:
"Необработанное исключение типа "System.NullReferenceException" произошло в AccessTest.exe
Дополнительные сведения: Ссылка на объект не указывает на экземпляр объекта".
Не пойму что не так. У остальных работает. Код вроде правильный.
В Excel экспортируется, но не сохраняется файл и приложение не закрывается.
Листинг программы
- Public Class Form1
- Dim xlApp As Microsoft.Office.Interop.Excel.Application
- Dim xlWorkBook As Microsoft.Office.Interop.Excel.Workbook
- Dim xlWorkSheet As Microsoft.Office.Interop.Excel.Worksheet
- Dim misValue As Object = System.Reflection.Missing.Value
- Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
- Dim i As Integer
- Dim j As Integer
- xlApp = New Microsoft.Office.Interop.Excel.Application
- xlApp.Visible = True
- xlWorkBook = xlApp.Workbooks.Add(misValue)
- xlWorkSheet = xlWorkBook.Sheets("Лист1")
- For i = 0 To DataGridView1.RowCount - 1
- For j = 0 To DataGridView1.ColumnCount - 1
- For k As Integer = 1 To DataGridView1.Columns.Count
- xlWorkSheet.Cells(1, k) = DataGridView1.Columns(k - 1).HeaderText
- xlWorkSheet.Cells(i + 2, j + 1) = DataGridView1(j, i).Value.ToString()
- Next
- Next
- Next
- xlWorkSheet.SaveAs("C:\экспорт.xlsx")
- xlWorkBook.Close()
- xlApp.Quit()
- ReleaseObject(xlApp)
- ReleaseObject(xlWorkBook)
- ReleaseObject(xlWorkSheet)
- MsgBox("Ваш файл сохранен в C:\экспорт.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
- End Class
Решение задачи: «Экспорт данных из DataGridView в Excel»
textual
Листинг программы
- xlWorkSheet.Cells(i + 2, j + 1) = DataGridView1(j, i).Value.ToString()
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д