使用DocumentFormat.OpenXml的VB.net代码错误地读取excel表行

时间:2017-10-04 11:12:43

标签: excel vb.net

我正在使用库DocumentFormat.OpenXml来读取Excel中具有特定列名的表的值,例如" Name"," CAS"我的代码片段如下:

Dim cookie1 As New HttpCookie("cn" & j + 1)
cookie1.Value = dt.Rows(j)("Name").ToString()
cookie1.Expires = DateTime.Now.AddDays(2)
Response.Cookies.Add(cookie1)

j是从0到列数-1的整数。即使列是显式命名的,它也会读取错误的值,例如在cookie cn2中,而不是读取列的第二行Name,它读取第二行列CAS。 dt是一个DataTable()对象。 任何帮助解决这个问题将不胜感激。

1 个答案:

答案 0 :(得分:0)

在这种情况下似乎是因为Open Xml忽略了空白单元格而导致问题,并且在输入文件中有很多空白单元格。以下代码:

For Each cell As Cell In row.Descendants(Of Cell)()
dt.Columns.Add(GetValue(doc, cell))
Next

仅考虑填充的单元格,因此它会将错误的数据放入第一个空白条目后的列中。  解决方案是填充条目,这些条目通常应为空白为-1(并修改代码以将其视为空白)