Foxtable(狐表)用户栏目专家坐堂 → 怎么控制excel插入下面的列


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

主题:怎么控制excel插入下面的列

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


加好友 发短信
等级:七尾狐 帖子:1685 积分:15644 威望:0 精华:0 注册:2017/6/1 23:12:00
怎么控制excel插入下面的列  发帖心情 Post By:2018/5/25 20:38:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看
一次插入画红框那样的四列,foxtable怎么写代码

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


加好友 发短信
等级:超级版主 帖子:105495 积分:536466 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/5/25 20:53:00 [只看该作者]

参考:http://www.foxtable.com/webhelp/scr/2334.htm

每四列做一个循环

For n As Integer = 1 To Sheet.Rows.Count -1
    For m As Integer = 0 To 2
        Dim r As Row = Tables("订单").AddNew()
        r("第一列") = Sheet(n,0+m*4).Value
        r("第二列") = Sheet(n,1+m*4).Value
        r("第三列") = Sheet(n,2+m*4).Value
        r("第四列") = Sheet(n,3+m*4).Value
    Next
Next

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


加好友 发短信
等级:七尾狐 帖子:1685 积分:15644 威望:0 精华:0 注册:2017/6/1 23:12:00
  发帖心情 Post By:2018/5/25 21:09:00 [只看该作者]

我是想插入空列,然后再往里写值,插入空列原因是最右有列合计,不能破坏公式

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


加好友 发短信
等级:超级版主 帖子:105495 积分:536466 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/5/25 21:16:00 [只看该作者]

你是想插入值到Execl?还是从Execl取值到狐表?

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


加好友 发短信
等级:七尾狐 帖子:1685 积分:15644 威望:0 精华:0 注册:2017/6/1 23:12:00
  发帖心情 Post By:2018/5/25 21:20:00 [只看该作者]

先插入空列,表头合并单元格,再一个单元格一个单元格填数,报表太复杂,没有好办法生成
[此贴子已经被作者于2018/5/25 21:28:24编辑过]

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


加好友 发短信
等级:超级版主 帖子:105495 积分:536466 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/5/25 21:37:00 [只看该作者]

Execl无所谓插入空列,也不需要,列就在那里,直接填入数据即可。

先在模板第13列直接设置公式即可

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


加好友 发短信
等级:七尾狐 帖子:1685 积分:15644 威望:0 精华:0 注册:2017/6/1 23:12:00
  发帖心情 Post By:2018/5/25 21:40:00 [只看该作者]

四个列就是一个产品,产品有多少不固定,最右面是列合计,如果不插入,就会破坏最右面的公式,最右面公式部分我没有截图

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


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

请上传实例,并说明需要的具体的效果

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


加好友 发短信
等级:七尾狐 帖子:1685 积分:15644 威望:0 精华:0 注册:2017/6/1 23:12:00
  发帖心情 Post By:2018/5/25 22:37:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:项目1.rar
这是示例,但每个月的产品数量是不固定的,excel为表样
[此贴子已经被作者于2018/5/25 22:37:13编辑过]

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


加好友 发短信
等级:超级版主 帖子:105495 积分:536466 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/5/25 23:45:00 [只看该作者]

只保留日期列,其它全部用代码生成,例如:

Dim Book As New XLS.Book("D:\问题\项目1\Book1.xlsx") '定义一个Excel工作簿
Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表
Dim dict As new Dictionary(of String,Integer)
Dim lst As List(Of String) = DataTables("表B").GetValues("产品名称")
Dim zimu As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Dim i As Integer = 0
Dim idx As Integer
Dim Formula As String = "="
Dim k As Integer
Dim km As Integer
For i = 0 To lst.Count - 1
    idx = i*4+1
    k = Math.Floor((idx+2) / 26) - 1
    km = (idx+2) Mod 26
    'Output.Show("k=" & k & ", km=" & km)
    If k< 0 Then
        Formula &=  zimu(km) & "{0}+"
    Else
        Formula &= zimu(k) & zimu(km) & "{0}+"
    End If
    
    k = Math.Floor((idx+3) / 26) - 1
    km = (idx+3) Mod 26
    If k< 0 Then
        Formula &=  zimu(km) & "{0}+"
    Else
        Formula &= zimu(k) & zimu(km) & "{0}+"
    End If
    dict.Add(lst(i),idx)
    Sheet(0,idx).Value = lst(i)
    Sheet(1,idx).Value = "出入库"
    Sheet(1,idx+1).Value = "库存"
    Sheet(1,idx+2).Value = "装卸费"
    Sheet(1,idx+3).Value = "堆存费"
    Sheet.MergeCell(0,idx,1,4)
Next

idx = i*4+1
k = Math.Floor(idx / 26) - 1
km = idx Mod 26
If k< 0 Then
    Formula &=  zimu(km) & "{0}+"
Else
    Formula &= zimu(k) & zimu(km) & "{0}+"
End If
k = Math.Floor((idx+1) / 26) - 1
km = (idx+1) Mod 26
If k< 0 Then
    Formula &=  zimu(km) & "{0}+"
Else
    Formula &= zimu(k) & zimu(km) & "{0}+"
End If
k = Math.Floor((idx+2) / 26) - 1
km = (idx+2) Mod 26
If k< 0 Then
    Formula &=  zimu(km) & "{0}+"
Else
    Formula &= zimu(k) & zimu(km) & "{0}+"
End If
Sheet(0,idx).Value = "掏装箱操作费"
Sheet.MergeCell(0,idx,2,1)
Sheet(0,idx+1).Value = "换标签"
Sheet.MergeCell(0,idx+1,2,1)
Sheet(0,idx+2).Value = "托盘费"
Sheet.MergeCell(0,idx+2,2,1)
Sheet(0,idx+3).Value = "仓储合计"
Sheet.MergeCell(0,idx+3,2,1)
Tables("表B").Sort = "日期"
Dim idx2 = 2
Formula = Formula.TrimEnd("+")
Output.Show(Formula)
For Each r As Row In Tables("表B").Rows
    Sheet(idx2,0).Value = r("日期")
    Dim j As Integer = dict(r("产品名称"))

    Sheet(idx2,j).Value = IIF(r("摘要") = "入库",r("数量"),-1*r("数量"))
    'Sheet(idx,j+1).Value = r("库存")
    Sheet(idx2,j+1).Value = r("装卸费")
    'Sheet(idx,j+1).Value = r("堆存费单价")*
    
    Sheet(idx2,idx).Value = r("掏装箱操作费")
    Sheet(idx2,idx+1).Value = r("换标签")
    Sheet(idx2,idx+2).Value = r("托盘费")

    Sheet(idx2,idx+3).Formula = Cexp(Formula,idx2+1)
    idx2 += 1
Next

Book.Save("D:\问题\项目1\Book2.xlsx")

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