我解析了一个 Excel 电子表格,并将整个结果作为 DataTable 返回。但是,这个 Excel 电子表格有几个空行,我想从生成的 DataTable 中删除它们。特别是,每个空行都以一个空单元格开始。所以,我知道如果第一个索引处的单元格的值为空,则整行都是空的。请注意,我不能简单地修改 Excel 电子表格,因为我必须准确地处理客户发送给我的内容。基于这些信息,我假设我可以执行以下函数来删除空行:
' DataTable dt has already been populated with the data
For Each row As DataRow In dt.Rows
If dt.Rows.Item(0).ToString = "" Then
dt.Rows.Remove(row)
ElseIf dt.Rows.Item(0) Is Nothing Then
dt.Rows.Remove(row)
End If
Next
但是,在制定此解决方案后,我收到以下错误:
Collection was modified; enumeration operation might not execute.
我现在意识到我无法在访问集合时更改它。我怎样才能解决这个问题?我想知道是否应该使用非空行创建一个新的 DataTable。这是最好的方法还是有更好的选择?
编辑:我也尝试过向后迭代行:
For i = dt.Rows.Count() - 1 To 0
If dt.Rows.Item(i).Item(0).ToString = "" Then
dt.Rows.RemoveAt(i)
End If
Next