Jamim Ответов: 2

Как я могу экспортировать все данные в моем datagridview и поместить их в определенные ячейки в моем excels? Vb.net


Я создаю кнопку, которая будет экспортировать все данные в моем datagridview в excel
Но я хочу поместить его в специальную камеру. Как я могу это сделать? Я все еще новичок в программировании.

Этот код будет экспортировать все данные в моем Datagridview в excel, но не в определенные ячейки, что я хочу сделать.
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
     Dim i As Integer
     Dim j As Integer

     xlApp = New Microsoft.Office.Interop.Excel.Application
     xlWorkBook = xlApp.Workbooks.Add(xlPath)
     'xlWorkBook = xlApp.Workbooks.Add(misValue)
     'xlWorkSheet = xlWorkBook.Sheets("sheet2")
     xlWorkSheet = CType(xlWorkBook.Sheets("sheet2"), Microsoft.Office.Interop.Excel.Worksheet)

     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

             Next
         Next
     Next

     xlWorkSheet.SaveAs(CType(xlPath, String))
     xlWorkBook.Close()
     xlApp.Quit()

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

     MsgBox("You can find the file C:\Users\Alex\Desktop\print2")
     Dim res As MsgBoxResult
     res = MsgBox("Process completed, Would you like to open file?", MsgBoxStyle.YesNo)
     If (res = MsgBoxResult.Yes) Then
         Process.Start(xlPath)
     End If


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

этот код предназначен только для одной строки, которая помещает данные в определенную ячейку в моем excel, но я хочу поместить все данные, которые я экспортировал в своем excel, в определенную ячейку.

<pre>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
        Dim t As Integer
        Dim s As Integer

        xlApp = New Microsoft.Office.Interop.Excel.Application
        xlWorkBook = xlApp.Workbooks.Add(xlPath)
        xlWorkSheet = xlWorkBook.Sheets("Payment Printing")
        xlWorkSheet.Cells(t + 6, s + 8) = DATE_OF_PAYMENTTextBox.Text()
        xlWorkSheet.Cells(t + 7, s + 2) = PAID_TOTextBox.Text()
        xlWorkSheet.Cells(t + 12, s + 8) = AMOUNTTextBox.Text()
        xlWorkSheet.Cells(t + 12, s + 7) = TOTextBox.Text()
        xlWorkSheet.Cells(t + 12, s + 6) = FROMTextBox.Text()
        xlWorkSheet.Cells(t + 12, s + 3) = ACTIVITYTextBox.Text()
        xlWorkSheet.Cells(t + 17, s + 3) = TYPE_OF_EXPENSETextBox.Text()
        xlWorkSheet.Cells(t + 20, s + 3) = ACCOUNT_CODETextBox.Text()
        xlWorkSheet.Cells(t + 23, s + 3) = CHECKTextBox.Text()
        xlWorkSheet.Cells(t + 24, s + 3) = BANKTextBox.Text()
        xlWorkSheet.Cells(t + 25, s + 3) = DATE1TextBox.Text()
        xlWorkSheet.Cells(t + 23, s + 6) = VATABLETextBox.Text()
        xlWorkSheet.Cells(t + 24, s + 6) = SUBJECT_TO_W_TAXTextBox.Text()
        xlWorkSheet.Cells(t + 25, s + 6) = W_TAX_RATETextBox.Text()
        xlWorkSheet.Cells(t + 23, s + 8) = INPUT_VATTextBox.Text()    
        xlWorkSheet.Cells(t + 24, s + 8) = W_TAXTextBox.Text()
        xlWorkSheet.Cells(t + 25, s + 8) = BALANCETextBox.Text()
        xlWorkSheet.Cells(t + 21, s + 8) = TOTAL_PHPTextBox.Text()

        Try

            If MsgBox("WOULD YOU LIKE TO SEE THE DATA IN EXCEL?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
                xlWorkSheet.SaveAs(xlPath)
                Process.Start(xlPath)
            Else
                Exit Sub
            End If
            xlWorkBook.Close()
            xlApp.Quit()
        Catch ex As Exception

        End Try

        ReleaseObject(xlApp)
        ReleaseObject(xlWorkBook)
        ReleaseObject(xlWorkSheet)
    End Sub 

2 Ответов

Рейтинг:
1

Richard Deeming

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

' Start the table at cell C5:
Dim startRow As Integer = 5
Dim startColumn As Integer = 3

' Create the header row:
For j = 0 To DataGridView1.ColumnCount - 1
    xlWordSheet.Cells(startRow, startColumn + j) = DataGridView1.Columns(j).HeaderText
Next

' Create the data rows:
For i = 0 To DataGridView1.RowCount - 1
    For j = 0 To DataGridView1.ColumnCount - 1
        xlWorkSheet.Cells(startRow + i + 1, startColumn + j) = DataGridView1(j, i).Value
    Next
Next


Рейтинг:
1

Member 12813074

Дорогие Все,

Пожалуйста, смотрите мой код, вот так

 Dim APP As Object
        Dim worksheet As Object
        Dim workbook As Object
        APP = CreateObject("excel.application")
        workbook = APP.Workbooks.add
        worksheet = workbook.Worksheets("sheet1")
        For i = 0 To DataGridView1.RowCount - 2
            For j = 0 To DataGridView1.ColumnCount - 1
                For k As Integer = 1 To DataGridView1.Columns.Count
                    worksheet.Cells(1, k) = DataGridView1.Columns(k - 1).HeaderText
                    worksheet.Cells(i + 2, j + 1) = DataGridView1(j, i).Value.ToString()
                Next
            Next
        Next

        worksheet.saveas("d:\latihan.xls")
        workbook.close()
        APP.quit()


My best regards,




Muljanto


Jamim

Вы используете цикл for, но он не будет экспортировать все мои данные в datagridview в определенную ячейку excel.