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


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

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

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


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

因为每个月都生成,加上日期列,怎么改一下代码?


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/27 14:47:00 [只看该作者]

以下是引用xxfoxtable在2018/5/27 14:35:00的发言:

因为每个月都生成,加上日期列,怎么改一下代码?

 

没看懂你的意思。现在代码生成有什么问题?得到的结果和你想要得到的结果有什么区别?


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


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

打算新建一个excel表,直接放里填数,怎么用代码新建?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/27 22:13:00 [只看该作者]

以下是引用xxfoxtable在2018/5/27 19:19:00的发言:
打算新建一个excel表,直接放里填数,怎么用代码新建?

 

参考

 

http://www.foxtable.com/webhelp/scr/1148.htm

 

http://www.foxtable.com/webhelp/scr/1144.htm

 


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


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


还是生成不成功,麻烦老师帮忙看一下,特殊语句麻烦帮助做一下功能标识,要不然看不明白,谢谢
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar

[此贴子已经被作者于2018/5/28 13:12:53编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/28 14:58:00 [只看该作者]

excel表格的列数,最大是256列,超过是不行的。

 

要用vba处理,大致代码如下,没看懂你到底要实现什么,细节自己调整

 

Dim App As New MSExcel.Application
Dim Wb As MSExcel.Workbook = App.WorkBooks.Add
Dim ws = Wb.WorkSheets(1)
ws.name = "test"
Dim dict As new Dictionary(of String,Integer)
Dim lst As List(Of String) = DataTables("日库存表").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*7+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)
    ws.cells(0+1,idx+1).Value = lst(i)
    ws.cells(1+1,idx+1+1).Value = "出入库"
    ws.cells(1+1,idx+1+1).Value = "库存"
    ws.cells(1+1,idx+2+1).Value = "装卸费"
    ws.cells(1+1,idx+3+1).Value = "堆存费"
    ws.cells(1+1,idx+4+1).Value = "拆箱费"
    ws.cells(1+1,idx+5+1).Value = "出签费"
    ws.cells(1+1,idx+6+1).Value = "备注"
    'Dim Rg As MSExcel.Range = Ws.Range(ws.cells(1,idx+1).Address & ":" & ws.cells(1,idx+1+7).Address)
    'App.DisplayAlerts = False '加上此行可禁止弹出合并前的提示
    'Rg.Merge
    'Sheet.MergeCell(0,idx,1,7)
Next


idx = i*7+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
ws.cells(0+1,idx+1).Value = "装卸费"
Ws.Range(ws.cells(1,idx+1).Address & ":" & ws.cells(2,idx+1).Address).Merge
'Sheet.MergeCell(0,idx,2,1)
ws.cells(0+1,idx+1+1).Value = "堆存费"
Ws.Range(ws.cells(1,idx+2).Address & ":" & ws.cells(2,idx+2).Address).Merge
'Sheet.MergeCell(0,idx+1,2,1)
ws.cells(0+1,idx+2+1).Value = "拆箱费"
Ws.Range(ws.cells(1,idx+3).Address & ":" & ws.cells(2,idx+3).Address).Merge
'Sheet.MergeCell(0,idx+2,2,1)
ws.cells(0+1,idx+3+1).Value = "出签费"
Ws.Range(ws.cells(1,idx+4).Address & ":" & ws.cells(2,idx+4).Address).Merge
'Sheet.MergeCell(0,idx+2,2,1)
ws.cells(0+1,idx+4+1).Value = "仓储合计"
Ws.Range(ws.cells(1,idx+5).Address & ":" & ws.cells(2,idx+5).Address).Merge
'Sheet.MergeCell(0,idx+3,2,1)
Tables("日库存表").Sort = "日期"
Dim idx2 = 2
Formula = Formula.TrimEnd("+")
'Output.Show(Formula)
For Each r As Row In Tables("日库存表").Rows
    ws.cells(idx2+1,0+1).Value = r("日期")
    Dim j As Integer = dict(r("英文名称"))
   
    ws.cells(idx2+1,j+1).Value = r("出入库")
    ws.cells(idx+1,j+1+1).Value = r("库存数量")
    ws.cells(idx2+1,j+1+1).Value = r("装卸费")
    ws.cells(idx2+1,j+1+1).Value = r("仓储费")
   
    ws.cells(idx2+1,idx+1+1).Value = r("拆箱费")
    ws.cells(idx2+1,idx+2+1).Value = r("标签费")
   
   
    ws.cells(idx2+1,idx+3+1).Formula = Cexp(Formula,idx2+1)
    idx2 += 1
Next
'wb.Saveas("D:\报表\横向报表.xlsx")
app.visible = True
msgbox("生成完成!!")


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


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

说实在的,我真有点看不懂有些代码,我想实现的就是按日期和产品名称写到表格里,左面是日期上面是产品名称,产品名称下分ws.cells(1+1,idx+1+1).Value = "出入库"
    ws.cells(1+1,idx+1+1).Value = "库存"
    ws.cells(1+1,idx+2+1).Value = "装卸费"
    ws.cells(1+1,idx+3+1).Value = "堆存费"
    ws.cells(1+1,idx+4+1).Value = "拆箱费"
    ws.cells(1+1,idx+5+1).Value = "出签费"
    ws.cells(1+1,idx+6+1).Value = "备注"
这几个
每一个日期只有一行,30天就30行  31天就是31行,一楼有表样
[此贴子已经被作者于2018/5/28 16:27:46编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/28 16:33:00 [只看该作者]

1、对你的表格数据进行分组统计或者交叉统计

 

http://www.foxtable.com/webhelp/scr/0158.htm

 

http://www.foxtable.com/webhelp/scr/0165.htm

 

2、然后直接saveexcel或者如16楼导出数据

 

http://www.foxtable.com/webhelp/scr/0559.htm

 


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


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

都统计完了, 就是往表格里填数(按日期,按产品名称)
[此贴子已经被作者于2018/5/28 16:38:16编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/28 18:12:00 [只看该作者]

以下是引用xxfoxtable在2018/5/28 16:38:00的发言:
都统计完了, 就是往表格里填数(按日期,按产品名称)
[此贴子已经被作者于2018/5/28 16:38:16编辑过]

 

1、如果是交叉统计,得到交叉统计表以后,直接saveexcel就可以啊;

 

2、直接写代码处理也行

 

http://www.foxtable.com/webhelp/scr/2394.htm

 


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