Click here to Skip to main content
15,890,399 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
my data in the last column is not being displayed when it exports it to excel

VB
Dim rowsTotal, colsTotal As Short
       Dim I, j, iC As Short
       System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor
       Dim xlApp As New Excel.Application
       Try
           Dim excelBook As Excel.Workbook = xlApp.Workbooks.Add
           Dim excelWorksheet As Excel.Worksheet = CType(excelBook.Worksheets(1), Excel.Worksheet)
           xlApp.Visible = True
           rowsTotal = DataGridView1.RowCount - 1
           colsTotal = DataGridView1.Columns.Count - 1
           With excelWorksheet
               .Cells.Select()
               .Cells.Delete()
               For iC = 0 To colsTotal
                   .Cells(3, iC + 1).Value = DataGridView1.Columns(iC).HeaderText
               Next
               For I = 0 To rowsTotal - 1
                   For j = 0 To colsTotal - 1
                       .Cells(I + 5, j + 1).value = DataGridView1.Rows(I).Cells(j).Value
                   Next j
               Next I
               .Rows("1:1").Font.FontStyle = "Bold"
               .Rows("1:1").Font.Size = 11
               .Rows("3:1").Font.FontStyle = "Bold"
               .Rows("3:1").Font.Size = 11
               .Cells.Columns.AutoFit()
               .Cells.Select()
               .Cells.EntireColumn.AutoFit()
               .Cells(1, 1).Select()
               For j = 0 To colsTotal
                   .Cells(I + 5, j + 1).value = DataGridView1.Rows(I).Cells(j).Value
               Next j
           End With
Catch ex As Exception
            MsgBox("Export Excel Error " & ex.Message)
        Finally
            System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default
            xlApp = Nothing
        End Try
Posted

1 solution

VB
For I = 0 To rowsTotal - 1 ' By including the -1 here you are actually skipping the last row
   For j = 0 To colsTotal - 1 ' By including the -1 here you are actually skipping the last column
      .Cells(I + 5, j + 1).value = DataGridView1.Rows(I).Cells(j).Value
      Next j
   Next I
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS


CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900