Member 14153541 Ответов: 2

Vb.net как экспортировать файл excel из datagridview, попросив пользователя выбрать его путь и имя файла


Как экспортировать файл excel из datagridview, попросив пользователя выбрать его целевой файл и имя файла?

Что я уже пробовал:

Dim xlWorkBook As Excel.Workbook
        Dim xlWorkSheet As Excel.Worksheet
        Dim misValue As Object = System.Reflection.Missing.Value

        Dim i As Int16, j As Int16

        Dim xlApp As Excel.Application = New Microsoft.Office.Interop.Excel.Application()
        xlWorkBook = xlApp.Workbooks.Add(misValue)
        xlWorkSheet = xlWorkBook.Sheets("sheet1")

        xlWorkSheet.Cells(1, 1) = "DATE HANDLED"
        xlWorkSheet.Cells(1, 2) = "ROUTE"
        xlWorkSheet.Cells(1, 3) = "ITIN NO"
        xlWorkSheet.Cells(1, 4) = "METER NUMBER"
        xlWorkSheet.Cells(1, 5) = "L.I.N"
        xlWorkSheet.Cells(1, 6) = "ADDRESS"
        xlWorkSheet.Cells(1, 7) = "FF DESCRIPTION AND REMARKS"
        xlWorkSheet.Cells(1, 8) = "RDG"



        For i = 0 To dt_data.RowCount - 2
            For j = 0 To dt_data.ColumnCount - 1
                xlWorkSheet.Cells(i + 3, j + 1) = dt_data(j, i).Value.ToString()
            Next
        Next

        xlWorkBook.SaveAs("f:\vb.net-informations.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue,
         Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue)
        xlWorkBook.Close(True, misValue, misValue)
        xlApp.Quit()

        releaseObject(xlWorkSheet)
        releaseObject(xlWorkBook)
        releaseObject(xlApp)

        MessageBox.Show("Saved")

а вот и класс releaseObject
Private Sub releaseObject(ByVal obj As Object)
        Try
            System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
            obj = Nothing
        Catch ex As Exception
            obj = Nothing
            MessageBox.Show("Exception Occured while releasing object " + ex.ToString())
        Finally
            GC.Collect()
        End Try
    End Sub

EricERankin

Вот самое простое было я умею экспорт DataGridView в файл Excel в VB.NET:

-------
Дим диалоговое окно savefiledialog = новое диалоговое окно savefiledialog()
If (saveFileDialog.ShowDialog() = DialogResult.Хорошо) тогда

Dim workbook = новый ExcelFile()
Дим лист = книга.Worksheets.Add("Лист1")

- Экспорт данных из DataGridView в ExcelFile.
DataGridViewConverter.ImportFromDataGridView(worksheet, Me.dataGridView1, New ImportFromDataGridViewOptions() With {.ColumnHeaders = True})

рабочая тетрадь.Save(saveFileDialog.имя файла)

Конец, Если
-------

Это не руководство, а оно использует Библиотека Excel для VB.NET.

2 Ответов

Рейтинг:
12

Richard MacCutchan

Воспользуйся Класс SaveFileDialog (System.Окна.Формы) | Microsoft Docs[^] чтобы получить выбранный путь.


Рейтинг:
1

RickZeeland

Смотрите пример SaveFileDialog здесь: epplus - сохранение на диск с помощью SaveFileDialog | epplus Tutorial[^]

В этом примере используется EPPlus библиотека, Что означает, что вам не нужно взаимодействие с офисом: GitHub - JanKallman/EPPlus: создание расширенных электронных таблиц Excel с использованием .NET[^]