Foxtable(狐表)用户栏目专家坐堂 → 求教大师


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

主题:求教大师

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/12/13 20:08:00 [显示全部帖子]

 请上传完整例子。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/12/13 21:08:00 [显示全部帖子]

 看不懂你给的例子,详细说明一下怎么做吧。

 excel表,有两个规格,两个价格,是什么意思?

 你说的匹配是什么跟什么比较?

 具体举例一行数据,经过什么,最后效果是什么。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/12/13 21:49:00 [显示全部帖子]

 是把 品名 和 综合类 比较;品名2 和 专业类比较,然后引入 规格和价格 吗?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/12/13 22:40:00 [显示全部帖子]

 如下代码,直接执行便可

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(0)
    Dim dt As DataTable = DataTables("表A")
    Dim dt_log As DataTable = DataTables("表B")
    dt_log.DataRows.Clear
    For i As Integer = 3 To Sheet.Rows.Count -1
        Dim xval1 As String = sheet(i, 1).Text
        Dim xval2 As String = sheet(i, 5).text
        Dim fdr As DataRow = dt.Find("品名 = '" & xval1 & "'")
        If fdr IsNot Nothing Then
            fdr("规格") = sheet(i, 2).Text
            fdr("价格") = sheet(i, 3).Text
        Else
            fdr = dt_log.Find("第二列 Is null")
            If fdr Is Nothing Then
                fdr = dt_log.AddNew
            End If
            fdr("第二列") = xval1
        End If
        fdr = dt.Find("品名2 = '" & xval2 & "'")
        If fdr IsNot Nothing Then
            fdr("规格2") = sheet(i, 6).Text
            fdr("价格2") = sheet(i, 7).Text
        Else
            fdr = dt_log.Find("第四列 is null")
            If fdr Is Nothing Then
                fdr = dt_log.AddNew
            End If
            fdr("第四列") = xval2
        End If
    Next
    For Each dr As DataRow In dt.Select("规格 is null")
        Dim fdr As DataRow = dt_log.Find("第一列 is null")
        If fdr Is Nothing Then
            fdr = dt_log.AddNew
        End If
        fdr("第一列") = dr("品名")
    Next
    For Each dr As DataRow In dt.Select("规格2 is null")
        Dim fdr As DataRow = dt_log.Find("第三列 is null")
        If fdr Is Nothing Then
            fdr = dt_log.AddNew
        End If
        fdr("第三列") = dr("品名2")
    Next
    MainTable = Tables("表B")
End If

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/12/14 22:48:00 [显示全部帖子]

 你做一个窗口,绑定表B,弄完以后打开窗口不就行了?

 1、不知道表结构?不知道表头无法做。至少要知道表头,才能确定是第几列和从第几行开始。如果你能总结出规律也可以。

 2、上面说了。

 3、手工选择品名匹配?是说,张三可以匹配李四,导入李四的数据?如果这样,你单独做一张匹配表,说明哪个匹配哪个。

 回到顶部