【问题标题】:Exporting all records from datagridview to Excel VB.NET将所有记录从 datagridview 导出到 Excel VB.NET
【发布时间】:2016-09-13 01:21:27
【问题描述】:

我使用此代码将我的记录导出到 Excel,它工作正常,但它只导出一行。无论如何要在datagridview中记录我的所有数据吗?另外,我对VB中的水晶报表不熟悉,所以我想使用按钮点击事件..

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.ApplicationClass
xlWorkBook = xlApp.Workbooks.Add(misValue)
xlWorkSheet = xlWorkBook.Sheets("sheet1")


For i = 0 To DataGridView1.RowCount - 2
    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("D:\vbexcel.xlsx")
xlWorkBook.Close()
xlApp.Quit()

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

MsgBox("You can find the file D:\vbexcel.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

我无法对发布此代码的人发表评论,因为我的声誉很低...

【问题讨论】:

  • 兄弟,你的问题很不清楚。真正的问题是什么? Crystal Reports 和这个有什么关系?
  • 有人说我得用crystal report生成报表,用excel打开。但我不熟悉它,所以我在这里搜索了一些答案,我找到了这段代码。我使用此代码将datagridview 数据导出到excel,但它只保存一行。我需要将datagridview 中的所有数据保存到excel。有什么办法吗,先生?
  • 在你的代码中,你也想包含标题,对吧?
  • 是的,先生。我的DatagridView 中有 50 条记录,但只显示一条。

标签: vb.net excel datagridview


【解决方案1】:

更改您的For Loop。

   'FOR HEADERS
    For i = 1 To DataGridView1.ColumnCount
        xlWorkSheet.Cells(1, i) = DataGridView1.Columns(i - 1).HeaderText
        'FOR ITEMS
        For j = 1 To DataGridView1.RowCount
            xlWorkSheet.Cells(j + 1, i) = DataGridView1(i - 1, j - 1).Value.ToString()
        Next
    Next

【讨论】:

  • 我会试试这个。先生,我一会儿就回来:)
  • 好的,如果有效,请标记。要休息了如果该代码出现问题(尚未测试),请回复您。
  • 它保存第二条记录但不保存第一条。我尝试添加另一条记录,它也保存了。非常感谢先生 :) 我在只有 2 条记录的示例项目中对其进行了测试 :)
  • “它保存了第二条记录,但不保存第一条……” 什么意思?还有问题吗?
  • 在我的示例项目中,我输入了两条记录。但只有第二个会保存在 excel 文件中。我尝试输入另一条记录,它也保存了。第一个没有保存在excel文件中。
猜你喜欢
  • 1970-01-01
  • 2011-08-07
  • 1970-01-01
  • 2020-11-03
  • 1970-01-01
  • 1970-01-01
  • 2010-10-15
  • 1970-01-01
  • 2020-08-09
相关资源
最近更新 更多