Foxtable(狐表)用户栏目专家坐堂 → [求助]导出exlce年份20不显示,怎么实现?


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

主题:[求助]导出exlce年份20不显示,怎么实现?

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


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

要在你excel模板那里写公式,如

 

<format([日期列], "yy-MM-dd")>


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


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

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


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


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

beforeBuild事件 vars("idx") = 0

 

buildGroupHeader事件 vars("idx") += 1

 

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

 


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


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

无法导出样式的。

 

生成报表后,用xls.book重新打开重新设置样式。

 

 


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


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

无法直接设置。

 

一个一个重新设置才行

 

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

 

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

 


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


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

Dim t As Table = Tables("室内设计项目")
Dim g As Subtotalgroup
t.SubtotalGroups.Clear()
t.GroupAboveData = True
t.TreeVisible = False
g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "设计任务要求_项目名称"
g.Caption = "{0}"
t.SubtotalGroups.Add(g)
t.Subtotal()

Dim r As Row
Dim idx As Integer = 1
For i As Integer = 0 To t.Rows.Count(True) - 1
    r = t.Rows(i,True)
    If r.IsGroup '如果是分组行
        r("项目信息_项目总") = idx
        r("设计任务要求_省份") = t.Rows(i+1,True)("设计任务要求_省份")
        r("设计任务要求_城市") = t.Rows(i+1,True)("设计任务要求_城市")
        r("设计任务要求_项目名称") = t.Rows(i+1,True)("设计任务要求_项目名称")
        idx += 1
    End If
Next

 


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


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

你生成excel文件之后,再打开excel文件,插入你需要的内容,学习一下vba的控制

 

Dim t As Table = Tables("室内设计项目")
Dim g As Subtotalgroup
t.SubtotalGroups.Clear()
t.GroupAboveData = True
t.TreeVisible = False
g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "设计任务要求_项目名称"
g.Caption = "{0}"
t.SubtotalGroups.Add(g)
t.Subtotal()

Dim r As Row
Dim idx As Integer = 1
For i As Integer = 0 To t.Rows.Count(True) - 1
    r = t.Rows(i,True)
    If r.IsGroup '如果是分组行
        r("项目信息_项目总") = "分组行-" & idx
        r("设计任务要求_省份") = t.Rows(i+1,True)("设计任务要求_省份")
        r("设计任务要求_城市") = t.Rows(i+1,True)("设计任务要求_城市")
        r("设计任务要求_项目名称") = t.Rows(i+1,True)("设计任务要求_项目名称")
        idx += 1
    End If
Next

Dim flg As New SaveExcelFlags
flg.CellStyle = True
t.SaveExcel("d:\test.xls", "test", flg)

Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("D:\test.xls")
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets("test")
Dim urg = ws.UsedRange
Dim Rg As MSExcel.Range = Ws.Rows("1:2")  '以这个指定的单元格为基准

For i As Integer = urg.Rows.count To 3 Step -1
    Dim c = ws.cells(i, 1)
    If c.text.startswith("分组行-") Then
        c.value = c.text.replace("分组行-", "")
        Dim nr = ws.Rows(i+1)
        rg.copy
        nr.EntireRow.Insert(MSExcel.XlInsertShiftDirection.xlShiftDown)'在基准单元格上面插入一行
       
    End If
Next
Rg.Delete(MSExcel.XlDirection.xlUp) '下面的单元格上移

App.Visible = True


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


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

自定义排序

在默认情况下,Subtotal方法会根据分组列进行排序,然后再生成汇总模式。
Subtotal有一个可选参数,如果将其设置为True,那么在生成汇总模式时,可以自定义排序参数,而不是根据分组列排序。
例如根据日期和客户排序,分组列为客户,统计列为数量与金额,生成汇总模式:

Dim t As Table = Tables("订单")
Dim 
g As Subtotalgroup
t
.SubtotalGroups.Clear()
g = New Subtotalgroup
g
.Aggregate = AggregateEnum.Sum 
g
.GroupOn = "客户"
g
.TotalOn = "数量,金额" 
g
.Caption = "{0} 小计" 
t
.SubtotalGroups.Add(g)
g = New Subtotalgroup
g
.Aggregate = AggregateEnum.Sum
g
.GroupOn = "*" 
g
.TotalOn = "数量,金额"
g
.Caption = "总计"
t
.SubtotalGroups.Add(g)
t.Sort = 
"日期,客户" '指定排序字段
t.Subtotal(
True'生成汇总模式


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


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

以下是引用湛江智在2018/9/19 17:23:00的发言:
 谢谢 坛主老师
还有一个问题请教:  分组行的颜色要自定义的话,增加一句什么代码呢?

[此贴子已经被作者于2018/9/19 17:30:08编辑过]

 

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

 


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


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

设置 小计行0、小计行1、小计行2 的样式即可。

 

直接在表格设置也行 http://www.foxtable.com/webhelp/scr/0016.htm

 


 回到顶部
总数 13 1 2 下一页