Foxtable(狐表)用户栏目专家坐堂 → [求助]从excel表手动导入的空值问题


  共有3949人关注过本帖树形打印复制链接

主题:[求助]从excel表手动导入的空值问题

帅哥哟,离线,有人找我吗?
pladic
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:225 积分:2015 威望:0 精华:0 注册:2015/12/23 11:59:00
[求助]从excel表手动导入的空值问题  发帖心情 Post By:2016/9/22 9:21:00 [只看该作者]

从excel表手动导入table
execel表中一列为字符型,当该列的单元格值为空时,导入table的对应列属性为字符型,错误提示为:
从字符中“”列类型“Double”的转换无效

我加入判断代码,不为空时才赋值
IF sheet(n,m).value isnot nothing
r("列名")=sheet(n,m)
endif

但是,报错依旧。


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110572 积分:562750 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/22 9:29:00 [只看该作者]

贴出完整代码和上传Excel文件测试

 回到顶部
帅哥哟,离线,有人找我吗?
pladic
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:225 积分:2015 威望:0 精华:0 注册:2015/12/23 11:59:00
回复:(有点蓝)贴出完整代码和上传Excel文件测试  发帖心情 Post By:2016/9/22 10:23:00 [只看该作者]

Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter= "Excel文件|*.xls;*.xlsx" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    '    MessageBox.Show("你选择的文档为:" & dlg.FileName,"提示")    '    Dim ip As New 

Importer

    Dim Book As New XLS.Book(dlg.FileName)
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    Dim zong As Integer=sheet.Rows.count-1
    MessageBox.Show("你的文档有效行数为:" & zong,"提示")
    'Tables("订户信息表").StopRedraw()
    'Tables("订款信息表").StopRedraw()
    '注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
    'Dim nms() As String = { "编号","产品","客户","雇员","单价","折扣","数量","日期" }
    '注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
    For n As Integer = 2 To Sheet.Rows.Count -1
        Dim r As Row = Tables("订户信息表").AddNew()
        For m As Integer = 0 To 19 'nms.Length - 1
            Select Case m
                Case 0
                    r("发行员") = Sheet(n,m).Value

    'Dim lb As String = e.DataRow("发行员")
    'If e.DataRow("订户编号").StartsWith(lb) = False '如果单据编号前缀不符
        'Dim max As String
        'Dim idx As Integer
        'max = e.DataTable.Compute("Max(订户编号)","发行员 = '" & lb & "' And [_Identify] 

<> " & e.DataRow("_Identify")) '取得该类别的最大编号
        'If max > "" Then '如果存在最大编号
            'idx = CInt(max.Substring(lb.length+1)) + 1 '获得最大编号的后三位顺序号,并加1
        'Else
            'idx = 1 '否则顺序号等于1
        'End If
        'e.DataRow("订户编号") = lb & "-" & Format(idx,"00000")
    'End If
'
                Case 1
                    r("一级") = Sheet(n,m).Value
                Case 2
                    r("二级") = Sheet(n,m).Value
                Case 3
                    r("三级") = Sheet(n,m).Value
                Case 4
                    r("单位") = Sheet(n,m).Value
                Case 5
                    r("收刊人") = Sheet(n,m).Value
                Case 6
                    r("地址") = Sheet(n,m).Value
                Case 7
                    r("邮编") = Sheet(n,m).Value
                Case 8
                    r("份数") = Sheet(n,m).Value
                Case 9
                    r("获得方式") = Sheet(n,m).Value
                    'Case 10
                    'r("金额") = Sheet(n,m).Value
                    'Case 11
                    'r("到款日期") = Sheet(n,m).Value
                Case 12
                    r("电话") = Sheet(n,m).Value
                Case 13
                    r("备注") = Sheet(n,m).Value
                Case 14
                    r("组织征订") = Sheet(n,m).Value
                Case 15
                    If sheet(n,m).value=1
                        r("发刊标识") = False
                    Else
                        r("发刊标识") = True
                    End If
                Case 16
                    If sheet(n,m).value IsNot Nothing
                        r("应发期数") = sheet(n,m).value
                    Else
                        r("应发期数") = ""
                    End If
                    'Case 17
                    'r("汇款方式") = Sheet(n,m).Value
                    'Case 18
                    'r("汇piao号码") = Sheet(n,m).Value
            End Select
            Dim result As String
            Output.Show(Result)
            
        Next
        Forms("批量数据入库").controls("label1").text=n & "/" & zong
        application.Doevents()
    Next
    Tables("订户信息表").ResumeRedraw()
    Tables("订款信息表").ResumeRedraw()
End If

 回到顶部
帅哥哟,离线,有人找我吗?
pladic
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:225 积分:2015 威望:0 精华:0 注册:2015/12/23 11:59:00
怎么传附件?  发帖心情 Post By:2016/9/22 10:24:00 [只看该作者]

同题

 回到顶部
帅哥哟,离线,有人找我吗?
pladic
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:225 积分:2015 威望:0 精华:0 注册:2015/12/23 11:59:00
回复:(有点蓝)贴出完整代码和上传Excel文件测试  发帖心情 Post By:2016/9/22 10:27:00 [只看该作者]

  'Dim lb As String = e.DataRow("发行员")
    'If e.DataRow("订户编号").StartsWith(lb) = False '如果单据编号前缀不符
        'Dim max As String
        'Dim idx As Integer
        'max = e.DataTable.Compute("Max(订户编号)","发行员 = '" & lb & "' And [_Identify] 

<> " & e.DataRow("_Identify")) '取得该类别的最大编号
        'If max > "" Then '如果存在最大编号
            'idx = CInt(max.Substring(lb.length+1)) + 1 '获得最大编号的后三位顺序号,并加1
        'Else
            'idx = 1 '否则顺序号等于1
        'End If
        'e.DataRow("订户编号") = lb & "-" & Format(idx,"00000")
    'End If

另外,这段代码是表事件datacolchanged中的代码
复制到BUTTON里后,e.datarow就报错了。

请教

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110572 积分:562750 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/22 10:33:00 [只看该作者]

Dim lb As String = tables(某表).current("发行员")

上传项目和Excel文件测试


 回到顶部
帅哥哟,离线,有人找我吗?
pladic
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:225 积分:2015 威望:0 精华:0 注册:2015/12/23 11:59:00
[求助][贴图]回复:(有点蓝)Dim lb As String = tables(某表).cu...  发帖心情 Post By:2016/9/22 10:49:00 [只看该作者]

我是用360浏览器,不显示“上传文件”这一栏。

 回到顶部
帅哥哟,离线,有人找我吗?
pladic
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:225 积分:2015 威望:0 精华:0 注册:2015/12/23 11:59:00
  发帖心情 Post By:2016/9/22 10:51:00 [只看该作者]

这里可以
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:临时入库信息表.xlsx


 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110572 积分:562750 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/22 10:58:00 [只看该作者]

狐表中 ("应发期数")是什么列类型?

 回到顶部
帅哥哟,离线,有人找我吗?
pladic
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:225 积分:2015 威望:0 精华:0 注册:2015/12/23 11:59:00
  发帖心情 Post By:2016/9/22 11:06:00 [只看该作者]

 'Tables("订户信息表").StopRedraw()
 'Tables("订款信息表").StopRedraw()

如果单元格的值分别赋给这两个表,如何写订款信息表的赋值代码?

 回到顶部
总数 41 1 2 3 4 5 下一页