Foxtable(狐表)用户栏目专家坐堂 → 导入代码报错


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

主题:导入代码报错

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


加好友 发短信
等级:三尾狐 帖子:647 积分:5256 威望:0 精华:0 注册:2018/5/19 22:27:00
导入代码报错  发帖心情 Post By:2022/11/8 16:29:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20221108162814.png
图片点击可在新窗口打开查看


Dim ckl As WinForm.CheckedListBox = e.Form.Controls("CheckedListBox1")
Dim nms As New List(Of String)
For i As Integer = 0 To ckl.Items.count - 1 '获取已经勾选的列
    If ckl.GetItemChecked(i) Then
        nms.Add(ckl.Items(i))
    End If
Next
If nms.Count = 0 Then
    MessageBox.Show("至少要选择一列", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
    Return
End If 
'生成Excel表
Dim dt As DataTable = DataTables("线索")
Dim Result As DialogResult
Result = MessageBox.Show("确定要导入吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If Result = DialogResult.Yes Then
    Dim dlg As New OpenFileDialog
    dlg.Filter = "Excel文件|*.xls"
    If dlg.ShowDialog = DialogResult.OK Then
        Dim Book As New XLS.Book(dlg.FileName)
        Dim Sheet As XLS.Sheet = Book.Sheets("Sheet1")
        Dim dic As New Dictionary(Of DataRow, Integer)
        Dim ls As New List(Of Integer)
        For c As Integer = 0 To sheet.Cols.Count - 1
            If sheet(0, c).Value.replace(" ", "") > "" Then
              dic.Add(sheet(0, c).Value.replace(" ", ""), c)
            End If
        Next
        For n As Integer = 1 To Sheet.Rows.Count - 1
         ' If sheet(n, dic("企业名称")).Text <> "" Then
                Dim dr As DataRow = dt.Find("企业名称 = '" & sheet(n, dic("企业名称")).Text & "'")               保存报错
               If dr IsNot Nothing Then
                        For i As Integer = 0 To nms.count - 1
                            If nms(i) <> "企业名称" Then
                                If nms(i) = "更多电话" Then
                                      If dr.IsNull("更多电话") = False Then '如果工号列不为空
                                            Dim gdh () As String = dr("更多电话").Split(",") '将工号列内容拆分成数组
                                            Dim gds () As String = Sheet(n, dic("更多电话")).Value.Split(",")
                                            For Each gd As String In gds '遍历EXCL的每个电话
                                              If gdh.Contains(gd.replace(" ", "")) = False Then
                                                   gdh.add(gd)
                                              End If 
                                            Next
                                            dr("更多电话") = String.join(",", gdh.toarray)
                                            gdh.clear
                                      End If                                 
                                Else
                                 dr(nms(i)) = Sheet(n, dic(nms(i))).Value
                                End If
                            End If 
                        Next          
               End If 
          'End If 
        Next
    End If
 End If
  


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


加好友 发短信
等级:超级版主 帖子:109720 积分:558310 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/11/8 17:08:00 [只看该作者]

Dim dic As New Dictionary(Of DataRow, Integer)
改为
Dim dic As New Dictionary(Of string, Integer)

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


加好友 发短信
等级:三尾狐 帖子:647 积分:5256 威望:0 精华:0 注册:2018/5/19 22:27:00
  发帖心情 Post By:2022/11/8 17:38:00 [只看该作者]

  蓝老师,我测试了,只要不导入更多电话字段就不报错。我想达到的效果是:如果公司名称相同,把excl中这条更多电话数据,首先查找软件数据是否有重复的电话,如果有不导入,没有就与原来电话数据拼接,并用,号隔开;
更多电话的数据如:  18137847688,(0379)63120755,(0379)6312722,(0379)63120711,(0379)63120722
报错如下:

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20221108173408.png
图片点击可在新窗口打开查看



If nms(i) = "更多电话" Then
                                      If dr.IsNull("更多电话") = False Then '如果工号列不为空
                                            Dim gdh As List(Of String) = dr("更多电话").Split(",") '将工号列内容拆分成数组
                                            Dim gds () As String = Sheet(n, dic("更多电话")).Value.Split(",")
                                            For Each gd As String In gds '遍历EXCL的每个电话
                                              If gdh.Contains(gd.replace(" ", "")) = False Then
                                                   gdh.add(gd)
                                              End If 
                                            Next
                                            dr("更多电话") = String.join(",", gdh.toarray)
                                            gdh.clear
                                      End If 

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


加好友 发短信
等级:超级版主 帖子:109720 积分:558310 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/11/8 17:49:00 [只看该作者]

Dim gdh As List(Of String) = dr("更多电话").Split(",") '将工号列内容拆分成数组
改为
Dim gdh As new List(Of String) '将工号列内容拆分成数组
gdh .addrange(dr("更多电话").Split(","))

 回到顶部