繁体   English   中英

如何仅将datagridview中具有隐藏列的选定行导出到excel?

[英]How can I export only selected row with hidden column in my datagridview into excel?

我是一个新手,然后只能自学,我有一个datagridview将从数据库中加载数据,它有一个隐藏的列,我想将选定的数据行导出到excel,但是我要导出的是唯一可见的列在我的datagridview中excel和仅选定的行

我不知道该怎么做!

我该如何结合呢? 选定的列,只有可见的列将在我的Excel中导出

For i = 0 To SelectedRowCount - 1
            currentVisibleColumn = columnCollection.GetFirstColumn(DataGridViewElementStates.Visible)
            lastColumnExported = currentVisibleColumn
            For j = 1 To visibleColumnCount + 1
                Dim value = DataGridView1.Rows(i).Cells(currentVisibleColumn.Index).Value
                If value IsNot vbNullString Then
                    xlWorkSheet.Cells(i + 2, j) = value.ToString()
                    xlWorkSheet.Cells(i + 2, j + 1) = DataGridView1(j, DataGridView1.SelectedRows(i).Index).Value.ToString()
                End If
                currentVisibleColumn = columnCollection.GetNextColumn(lastColumnExported, DataGridViewElementStates.Visible, DataGridViewElementStates.None)
                lastColumnExported = currentVisibleColumn
            Next
        Next

当我这样做时,它给我“对象引用未设置为对象的实例。”

您的代码应更像这样:

Dim columns = (From column In DataGridView1.Columns.Cast(Of DataGridViewColumn)()
               Where column.Visible
               Order By column.DisplayIndex).ToArray()

For Each row As DataGridViewRow In DataGridView1.SelectedRows
    For Each column In columns
        Dim value = row.Cells(column.Index)

        If value IsNot Nothing Then
            '...
        End If
    Next
Next

如果仍然使用该代码获得NullReferenceException ,则需要对其进行更详细的说明以获得更多帮助,但解决此类问题的方法几乎总是相同的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM