добавить новый лист в существующий документ Excel и добавить содержимое DataGridView на лист с помощью Visual Basic - PullRequest
0 голосов
/ 18 июня 2020

В настоящее время код создает новый файл Excel с именем, которое я помещаю в текстовое поле87 Мне нужно, чтобы он просто добавил новый лист в файл, но также хочу выбрать, на какой лист он должен сохраняться.

Я в основном хотите создать лист Excel, затем скопируйте DataGridView как на этот лист Excel, но также хотите скопировать новые данные из DataGridView в тот же документ Excel, но на другой лист, в настоящее время просто перезаписывая текущий документ, а не добавляя листы.

\\\

            Dim sheetIndex As Integer
            Dim Ex As Object
            Dim Wb As Object
            Dim Ws As Object
            Dim thefilesnamet As String = TextBox87.Text
            Ex = CreateObject("Excel.Application")
            Wb = Ex.workbooks.add

            ' Copy each DataTable as a new Sheet

            'On Error Resume Next
            Dim col, row As Integer
            ' Copy the DataTable to an object array
            Dim rawData(DataGridView5.Rows.Count, DataGridView5.Columns.Count - 1) As Object

            ' Copy the column names to the first row of the object array

            For col = 0 To DataGridView5.Columns.Count - 1
                rawData(0, col) = DataGridView5.Columns(col).HeaderText.ToUpper

            Next

            For col = 0 To 
    5.Columns.Count - 1
                For row = 0 To DataGridView5.Rows.Count - 1
                    rawData(row + 1, col) = DataGridView5.Rows(row).Cells(col).Value

                Next
            Next
            ' Calculate the final column letter
            Dim finalColLetter As String = String.Empty
            finalColLetter = ExcelColName(DataGridView5.Columns.Count) 'Generate Excel Column Name (Column ID)


            sheetIndex += 1
            Ws = Wb.Worksheets(sheetIndex)
            'MessageBox.Show(Ws)
            'Ws.name = "Test10"
            Dim excelRange As String = String.Format("A1:{0}{1}", finalColLetter, DataGridView5.Rows.Count + 1)

            Ws.Range(excelRange, Type.Missing).Value2 = rawData
            Ws = Nothing
            Dim wheretosavethis As String = My.Computer.FileSystem.SpecialDirectories.Desktop & "/dealsforafricafiles/" & thefilesnamet & ".xlsx"

            Wb.SaveAs(wheretosavethis, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing)
            Wb.Close(True, Type.Missing, Type.Missing)
            Wb = Nothing
            ' Release the Application object
            Ex.Quit()
            Ex = Nothing
            ' Collect the unreferenced objects
            GC.Collect()
            MsgBox("Exported Successfully.", MsgBoxStyle.Information)

\\\
...