以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  【求助】数据合并  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=94112)

--  作者:好吧
--  发布时间:2016/12/15 16:05:00
--  【求助】数据合并
老师,我有一张下面这种excel表,下面的程序是我合并数据的程序,我现在想把W12806这个客户的订单过滤掉,就是说52528、 52555、38354这三张订单合并数据的时候不要合并进来,我下面的程序改怎么改??(为甚么不可以上传数据啊?)

 编码   规格    数量   日期                
 W12792                          
  00552   HLL    10   2016-12-30               
  42525   JLL    10                  
  25252  LLJ   10                  
                           
 W12806                          
  52528   JUIK    20   2016-12-30               
  52555  HKJH    20                  
  38354   KJKJ   20                  
                           
  W12807                         
   57252  SDFVGF   40    2016-12-30               
   54735   FGDG  40                  
   75353   GFGG  40                   

Dim dlg As new OpenFileDialog
dlg.Filter = "Excel文件|*.xls;*.xlsx"
dlg.MultiSelect = True \'允许选择多个文件
If dlg.ShowDialog = DialogResult.OK Then
    For Each file As String In dlg.filenames
        Dim dt As DataTable = DataTables("临时表")
        Dim dt1 As DataTable = DataTables("销售订单管理")
        Dim book As new XLS.Book(file)
        Dim sheet As XLS.Sheet = book.Sheets("Report")
        Dim khmc As String = ""
        Dim riqi As String = ""
        For i As Integer = 3 To sheet.Rows.Count - 1
            If sheet(i, 5).Text <> "" Then
                    If sheet(i, 6).Text = "" Then
                         Dim ndr1 As DataRow = dt1.AddNew
                         ndr1("ABUS香港订单号") = sheet(i, 5).text
                         ndr1("箱唛") = sheet(i+1, 11).text
                         khmc = sheet(i, 5).Text
                    Else
                        If sheet(i, 10).text <> "" Then 
                            If sheet(i, 10).text = "(leaving HK latest mid February 2017)" Then
                                riqi = sheet(i-1, 10).text
                            Else
                                riqi = sheet(i, 10).text
                            End If
                        End If                        
                    Dim ndr As DataRow = dt.AddNew                  
                    ndr("ABUS香港订单号") = khmc
                    ndr("德国编码") = sheet(i, 5).text
                    ndr("订单数量") = sheet(i, 8).text
                    ndr("要求交期") = riqi
                    ndr("确定交期") = riqi
                    End If
                 Next
           End If
        Next
    Next
End If

--  作者:有点色
--  发布时间:2016/12/15 16:10:00
--  

 

[此贴子已经被作者于2016/12/15 16:10:54编辑过]

--  作者:好吧
--  发布时间:2016/12/15 16:18:00
--  
??
--  作者:好吧
--  发布时间:2016/12/15 16:20:00
--  
这张excel表是这样的
[此贴子已经被作者于2016/12/19 20:52:20编辑过]

--  作者:有点色
--  发布时间:2016/12/15 16:24:00
--  

Dim dlg As new OpenFileDialog
dlg.Filter = "Excel文件|*.xls;*.xlsx"
dlg.MultiSelect = True \'允许选择多个文件
If dlg.ShowDialog = DialogResult.OK Then
    For Each file As String In dlg.filenames
        Dim dt As DataTable = DataTables("临时表")
        Dim dt1 As DataTable = DataTables("销售订单管理")
        Dim book As new XLS.Book(file)
        Dim sheet As XLS.Sheet = book.Sheets("Report")
        Dim khmc As String = ""
        Dim riqi As String = ""
        For i As Integer = 3 To sheet.Rows.Count - 1
            If sheet(i, 5).Text = "" Then
                khmc = ""
            Else
                If sheet(i, 6).Text = "" Then
                    If sheet(i, 5).Text = "W12806" Then
                        khmc = ""
                    Else
                        Dim ndr1 As DataRow = dt1.AddNew
                        ndr1("ABUS香港订单号") = sheet(i, 5).text
                        ndr1("箱唛") = sheet(i+1, 11).text
                        khmc = sheet(i, 5).Text
                    End If
                ElseIf khmc > "" Then
                    If sheet(i, 10).text <> "" Then
                        If sheet(i, 10).text = "(leaving HK latest mid February 2017)" Then
                            riqi = sheet(i-1, 10).text
                        Else
                            riqi = sheet(i, 10).text
                        End If
                    End If
                    Dim ndr As DataRow = dt.AddNew
                    ndr("ABUS香港订单号") = khmc
                    ndr("德国编码") = sheet(i, 5).text
                    ndr("订单数量") = sheet(i, 8).text
                    ndr("要求交期") = riqi
                    ndr("确定交期") = riqi
                End If
            End If
        Next
    Next
End If


--  作者:好吧
--  发布时间:2016/12/15 16:33:00
--  
老师,如果我想换其他客户的,也就是说将W12806换成W12805等,有什么办法不用进来修改代码??例如设置个按钮就可以切换
--  作者:有点色
--  发布时间:2016/12/15 17:18:00
--  

Dim str As String = "W12806,W12807,W12809"

 

\'其余代码

 

If ("," & str & ",").Contains("," & sheet(i, 5).Text & ",") Then

 

\'其余代码