Как я могу экспортировать только выбранную строку со скрытым столбцом в моем datagridview в 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

когда я это делаю, это дает мне «Ссылка на объект не установлена ​​на экземпляр объекта».

В какой строке возникает исключение?

Esko 10.09.2018 09:58

в этой строке xlWorkSheet.Cells (i + 2, j + 1) = DataGridView1 (j, DataGridView1.SelectedRows (i) .Index) .Value.ToString ()

small Jaw 13.09.2018 03:06
0
2
107
1

Ответы 1

Ваш код должен выглядеть примерно так:

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 с этим кодом, вам нужно будет более подробно рассказать о нем, чтобы получить дополнительную помощь, но решение таких проблем почти всегда одно и то же.

Другие вопросы по теме