Foxtable(狐表)用户栏目专家坐堂 → EXCEL的问题


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

主题:EXCEL的问题

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/12 9:04:00 [显示全部帖子]

没看懂数据之间的关系,只找到3个列的对应,其它列的数据是怎么对应的?以文件【伊芙丽9C3150301.xlsx】为例说明一下,并把最终需要的结果发上来看看。

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

按钮5里最终生成的“临时出货明细”我看了一下,也和表A对应不上

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/12 10:34:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:pdf读取项目.zip


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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/12 11:00:00 [显示全部帖子]

什么地方不对?应该怎么计算?

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/12 11:46:00 [显示全部帖子]

1、编号自行合成
2、6、文件名的处理参考:http://www.foxtable.com/webhelp/topics/1338.htm
3、4:拆分一下获取箱数,然后在计算,比如
dim m as string = "2~6"
dim s2() as string = m.split("~")
dim h as integer = val(s2(1)) - val(s2(0))  + 1
msgbox(“箱数=” & h)
5、表A的出货日期列为:出货日期加上文件的修改日期  -- 这个没看懂什么意思,举例说明一下

7、还有因为规格不确定
Dim s1() As String = {"品类","款号","XS","S","M","L","XL","XXL","把所有可能的规格补充到后面即可.....}



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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/12 12:04:00 [显示全部帖子]

那是:出货日期日期部分加上文件的修改日期的时间部分吧,就按照上面的方式获取即可

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/12 15:15:00 [显示全部帖子]

'''
Dim Book As New XLS.Book("D:\问题\伊芙丽9c4100561.xlsx")
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Dim s As String = Sheet(1,3).Value
Dim d As Date = cdate(s.Split(":")(1)) '.replace("/","-")
Output.Show(d)
Dim s1() As String = {"箱号","品类","款号","XXXS","XXS","XS","S","M","L","XL","XXL","XXXL","F","60","65","70","75","80","85","90","95","100","105","110","115","120","125","130","135","140","145","150","155","160","165","170","175","180","185","190","195","200"}
Dim dict As new Dictionary(of String,Integer)
For i As Integer = 0 To Sheet.Cols.Count - 1
    Dim k As Integer = Array.IndexOf(s1, Sheet(2,i).Text)
    If k > -1
        dict.Add(s1(k),i)
    End If
Next

Dim d2 As new Dictionary(of String,Integer)
Dim d3 As new Dictionary(of String,String)
For i As Integer = 3 To Sheet.Rows.Count - 1
    Dim pl As String = Sheet(i,dict("品类")).text
    If pl > "" Then
        Dim kh As String = Sheet(i,dict("款号")).text
        If d3.ContainsKey(kh) = False Then d3.Add(kh,pl)
        Dim sum As Integer = 0
        For Each key As String In dict.Keys
            If key = "箱号" OrElse key = "品类" OrElse key = "款号" Then Continue For
            sum += val(Sheet(i,dict(key)).text)
        Next
        
        Dim xh As String = Sheet(i,dict("箱号")).text
        If xh.Contains("~") Then
            Dim s3() As String = xh.split("~")
            Dim h As Integer = val(s3(1)) - val(s3(0))  + 1
            sum = sum * h
        End If
        Output.Show(sum)
        If d2.ContainsKey(kh) Then
            d2(kh) = d2(kh) + sum
        Else
            d2.Add(kh,sum)
        End If
    End If
Next

Dim r As Row
For Each key As String In d2.Keys
    r = Tables("表A").AddNew
    r("款式名称") = d3(key)
    r("款号") = key
    r("箱数") = d2(key)
    r("出货日期") = d
Next
[此贴子已经被作者于2021/4/12 15:25:47编辑过]

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/12 15:26:00 [显示全部帖子]

'''
Dim Book As New XLS.Book("D:\问题\伊芙丽9c4100561.xlsx")
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Dim s As String = Sheet(1,3).Value
Dim d As Date = cdate(s.Split(":")(1)) '.replace("/","-")
Output.Show(d)
Dim s1() As String = {"箱号","品类","款号","XXXS","XXS","XS","S","M","L","XL","XXL","XXXL","F","60","65","70","75","80","85","90","95","100","105","110","115","120","125","130","135","140","145","150","155","160","165","170","175","180","185","190","195","200"}
Dim dict As new Dictionary(of String,Integer)
For i As Integer = 0 To Sheet.Cols.Count - 1
    Dim k As Integer = Array.IndexOf(s1, Sheet(2,i).Text)
    If k > -1
        dict.Add(s1(k),i)
    End If
Next

Dim d2 As new Dictionary(of String,Integer)
Dim d3 As new Dictionary(of String,String)
For i As Integer = 3 To Sheet.Rows.Count - 1
    Dim pl As String = Sheet(i,dict("品类")).text
    If pl > "" Then
        Dim kh As String = Sheet(i,dict("款号")).text
        If d3.ContainsKey(kh) = False Then d3.Add(kh,pl)
        Dim sum As Integer = 0
        For Each key As String In dict.Keys
            If key = "箱号" OrElse key = "品类" OrElse key = "款号" Then Continue For
            sum += val(Sheet(i,dict(key)).text)
        Next
        
        Dim xh As String = Sheet(i,dict("箱号")).text
        If xh.Contains("~") Then
            Dim s3() As String = xh.split("~")
            Dim h As Integer = val(s3(1)) - val(s3(0))  + 1
            sum = sum * h
        End If
        Output.Show(sum)
        If d2.ContainsKey(kh) Then
            d2(kh) = d2(kh) + sum
        Else
            d2.Add(kh,sum)
        End If
    End If
Next

Dim r As Row
For Each key As String In d2.Keys
    r = Tables("表A").AddNew
    r("款式名称") = d3(key)
    r("款号") = key
    r("箱数") = d2(key)
    r("出货日期") = d
Next

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/12 16:42:00 [显示全部帖子]

看懂代码自行改,不可能我们写了一个代码,然后之后所有的变化都等这着我们改

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/13 16:35:00 [显示全部帖子]

……
Dim d3 As new Dictionary(of String,String)
Dim d4 As new Dictionary(of String,Integer ) 
 For i As Integer = 3 To Sheet.Rows.Count - 1
        Dim pl As String = Sheet(i,dict("品类")).text
        If pl > "" Then
            Dim kh As String = Sheet(i,dict("款号")).text
            If d3.ContainsKey(kh) = False Then d3.Add(kh,pl)
            Dim sum As Integer = 0
            For Each key As String In dict.Keys
                If key = "箱号" OrElse key = "品类" OrElse key = "款号" Then Continue For
                sum += val(Sheet(i,dict(key)).text)
            Next
            Dim xh As String = Sheet(i,dict("箱号")).text
if xh > "" then
hs = 1
            If xh.Contains("~") Then
                Dim s3() As String = xh.split("~")
                hs = val(s3(1)) - val(s3(0))  + 1
                sum = sum * hs
            End If
end if
            If d2.ContainsKey(kh) Then
                d2(kh) = d2(kh) + sum
                d4(kh) = d4(kh) + hs
            Else
                d2.Add(kh,sum)
                d4.Add(kh,hs)
            End If
        End If
    Next
……
            r("箱数") = d4(key)
            r("出货件数") = d2(key)

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/13 17:05:00 [显示全部帖子]

代码是判断品类列是否有数据,如果连品类都是空的,那就改为判断款号

 回到顶部
总数 21 上一页 1 2 3