在vb.net

时间:2016-08-09 04:15:46

标签: vb.net excel datagridview

我从excel表中读取单元格值并将其添加到datagridview中。 我按照下面的代码但它只添加了一行,它是excel表中的最后一行。我在excel表中有四行,因此datagridview也应该有四行。

 For x = 9 To xlWorkSheet.UsedRange.Rows.Count
            For j = 0 To LogCalcEnter.ColumnCount - 1
                If Not String.IsNullOrEmpty(xlWorkSheet.Cells(1 + x, j + 1).Value) Then
                    LogCalcEnter.Rows.Add()
                    LogCalcEnter.Item(j, 0).Value = xlWorkSheet.Cells(1 + x, j + 1).value
                End If
            Next
        Next

LogCalcEnter是Datagridview的名称

1 个答案:

答案 0 :(得分:0)

您为要循环的每个添加一个新行。下面的代码为您循环的每一行创建一个新的。我将LogCalcEnter.Item(j, 0)更改为LogCalcEnter.Item(j, rowIndex),以便您也填写行信息。注意:我实际上没有运行它,您可能会遇到与此相关的索引问题。你说你在电子表格中有4行,但你从x = 9开始。xlWorkSheet.Cells(1 + x, j + 1).Value)中的+ 1'将行数推到UsedRange中的数量上。

    For x = 1 To xlWorkSheet.UsedRange.Rows.Count
        Dim rowIndex = LogCalcEnter.Rows.Add()
        Dim hasValue = False
        For j = 0 To LogCalcEnter.ColumnCount - 1
            If Not String.IsNullOrEmpty(xlWorkSheet.Cells(1 + x, j + 1).Value) Then
                hasValue = True
                LogCalcEnter.Item(j, rowIndex).Value = xlWorkSheet.Cells(1 + x, j + 1).value
            End If
        Next
        If Not hasValue Then LogCalEnter.Rows.RemoveAt(rowIndex)
    Next