以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]自编码合并数据与Merger的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=91945)

--  作者:chnfo
--  发布时间:2016/10/22 16:17:00
--  [求助]自编码合并数据与Merger的问题
有一个EXCEL表,里面有编号、名称、单位、数量、单价列。其中有一些行的数量列是空的(没有将它输为0)

如果用merger,没有问题。

如果用自行编码来合并
Dim Book As New XLS.Book(表的路径)
Dim Sheet As XLS.Sheet = Book.Sheets(0) \'引用工作簿的第一个工作表
t.StopRedraw
Dim nms() As String = { "Code","Title",”Unit","A","P" }
For n As Integer = 1 To Sheet.Rows.Count -1 
    Dim r As Row = t.AddNew()
    For m As Integer = 0 To nms.Length - 1
         r(nms(m)) = Sheet(n,m).Value
    Next
Next
运行中弹出错误提示


版本:2016.7.29.1
代码执行出错,错误信息:
System.ArgumentException: 输入字符串的格式不正确。不能在 P 列中存储 <>。所需类型是 Double。 ---> System.FormatException: 输入字符串的格式不正确。

如果回到EXCEL表中,将所有的空值单元格都输入0,再运行就没有问题。
怎么避免这种问题?要求把每个空单元格的值输0,有点不合情理。
[此贴子已经被作者于2016/10/22 16:17:26编辑过]

--  作者:有点蓝
--  发布时间:2016/10/22 16:27:00
--  
Dim Book As New XLS.Book(表的路径)
Dim Sheet As XLS.Sheet = Book.Sheets(0) \'引用工作簿的第一个工作表
t.StopRedraw
Dim nms() As String = { "Code","Title","Unit","A","P" }
For n As Integer = 1 To Sheet.Rows.Count -1
    Dim r As Row = t.AddNew()
    For m As Integer = 0 To nms.Length - 1
        If Sheet(n,m).Value IsNot Nothing
            r(nms(m)) = Sheet(n,m).Value
        End If
    Next
Next