【问题标题】:VB2010: Export datagrid to Excel only retieving one rowVB 2010:将数据网格导出到 Excel 仅检索一行
【发布时间】:2012-10-20 14:12:57
【问题描述】:

我只想先提一下,我非常感谢所有贡献自己的知识来帮助他人学习的人......

我已经能够拼凑将我的 Datgrid 导出到 Excel 文件的代码并且工作正常,除了我只得到数据网格的第一行。由于数据网格可能包含一条或数百条记录,因此我需要将所有行导出到 Excel。

这是我能够放在一起的内容(再次,它工作正常,文件与列标题一起保存,但只从我的数据网格写入第一行数据):

'Export to Excel
    Dim ExApp1 As Excel.Application
    Dim ExWkbk1 As Excel.Workbook
    Dim ExWksht1 As Excel.Worksheet
    Dim MisValue As Object = System.Reflection.Missing.Value
    Dim i As Integer
    Dim j As Integer

    ExApp1 = New Excel.Application
    ExWkbk1 = ExApp1.Workbooks.Add(MisValue)
    ExWksht1 = ExWkbk1.Sheets("sheet1")



    For i = 0 To dg7.RowCount - 2
        For j = 0 To dg7.ColumnCount - 1
            ExWksht1.Cells(i + 2, j + 1) = dg7(j, i).Value.ToString()
            For k As Integer = 1 To dg7.Columns.Count
                ExWksht1.Cells(1, k) = dg7.Columns(k - 1).HeaderText
                ExWksht1.Cells(i + 2, j + 1) = dg7(j, i).Value.ToString()
            Next
        Next
    Next

    ExWksht1.SaveAs("C:\MyExcel.xlsx")
    ExWkbk1.Close()
    ExApp1.Quit()

    releaseObject(ExApp1)
    releaseObject(ExWkbk1)
    releaseObject(ExWksht1)

再次感谢您帮助我学习

【问题讨论】:

    标签: vb.net


    【解决方案1】:

    首先,在我看来,这是一个 DataGridView,而不是 DataGrid,因为据我所知,DataGrid 在 WinForms 或 Web.UI 中都没有“RowCount”或“ColumnCount”属性(我可能是错的)。
    如果是这样,是否有特定原因

    dg7.RowCount - 2

    如果您尝试从中获取数据的对象确实是 DataGridView,那么我想这个任务是省略新的(空)行。如果我是正确的,您正在尝试以这种方式从 DataGridView 导出数据,那么 DataGridViewRow 有一个属性可以用于此目的:

    IsNewRow

    所以(虽然我最近没有在 VB.NET 中使用 Excel)你的周期可能是:

    For i = 0 To dg7.ColumnCount - 1
        ExWksht1Cells(1 , i + 1) = dg7.Columns[i].HeaderText
    Next
    
    For i = 0 To dg7.RowCount - 1
        If Not dg7.Rows(i).IsNewRow Then
            For j = 0 To dg7.ColumnCount - 1
                ExWksht1.Cells(i+ 2, j + 1) = dg7(i, j).Value.ToString()
            Next
        End If
    Next
    

    就 excel 对象调用而言,我无法给出合理的评论,因为我没有过多地使用该对象。
    让我知道这是否有用和/或正确。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 2015-12-07
      • 1970-01-01
      相关资源
      最近更新 更多