我从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的名称
答案 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