以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  导入excel数据时,单元格为空的,如何导入。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=176965)

--  作者:蓝蚂蚁
--  发布时间:2022/5/5 10:03:00
--  导入excel数据时,单元格为空的,如何导入。
提示的错误:
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2019.6.18.1
错误所在事件:窗口,手工进销存主窗口,Button2,Click
详细错误信息:
从字符串“ ”到类型“Double”的转换无效。
输入字符串的格式不正确。


--  作者:有点蓝
--  发布时间:2022/5/5 10:05:00
--  
代码?http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=150626
--  作者:蓝蚂蚁
--  发布时间:2022/5/5 14:41:00
--  
抱歉了老师,是代码。

图片点击可在新窗口打开查看此主题相关图片如下:2022-05-05_143547.png
图片点击可在新窗口打开查看


Dim d As Date=e.Form.controls("DateTimePicker1").value
Dim bm As String=e.Form.controls("ComboBox1").value
Dim pth As String = ProjectPath & "AllMyFiles\\盘点表\\"
If d<>Nothing Then
    Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog
    dlg.Filter= "Excel文件|*.xls;*.xlsx|Word文件|*.doc|Access文件|*.mdb" \'设置筛选器
    dlg.InitialDirectory = pth
    If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
        Dim nms() As String = {"*品编码","*品名称","规格","门诊单位","*品库存明细表_入库数量","*品库存明细表_出库数量"} \'接收
        Dim nms2() As String = {"编码","名称","规格","单位","入库数量","出库数量"} \'来源
        Dim dict As new Dictionary(of String,String)
        For m As Integer = 0 To nms.Length - 1
            dict.add(nms2(m),nms(m))
        Next
        Dim Book As New XLS.Book(dlg.FileName)
        Dim Sheet As XLS.Sheet = Book.Sheets(0)
        Tables("手工进销存查询统计表").StopRedraw()
        \'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
        For n As Integer = 1 To Sheet.Rows.Count -1
            \'If  Sheet(n,0).text > "" Then
                Dim r As Row = Tables("手工进销存查询统计表").AddNew()
                r("截止日期")=d
                r("部门")=bm
                For m1 As Integer = 0 To Sheet.Cols.Count - 1
                    If dict.ContainsKey(Sheet(0,m1).Value)
                        r(dict(Sheet(0,m1).Value)) = Sheet(n,m1).Value
                    End If
                Next
            \'End If
        Next
        Tables("手工进销存查询统计表").ResumeRedraw()
    End If
Else
    MessageBox.Show("截止日期没有填上")
End If

--  作者:有点蓝
--  发布时间:2022/5/5 15:09:00
--  
                For m1 As Integer = 0 To Sheet.Cols.Count - 1
                    If dict.ContainsKey(Sheet(0,m1).Value)
if Sheet(n,m1).text > "" then
                        r(dict(Sheet(0,m1).Value)) = Sheet(n,m1).Value
end if
                    End If
                Next