Foxtable(狐表)用户栏目专家坐堂 → [求助]汇总行的位置


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

主题:[求助]汇总行的位置

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


加好友 发短信
等级:六尾狐 帖子:1399 积分:10810 威望:0 精华:0 注册:2013/11/8 15:27:00
[求助]汇总行的位置  发帖心情 Post By:2020/5/5 22:02:00 [只看该作者]

Dim dt As Table = CurrentTable 
Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
dlg.Filter= "Excel文件|*.xls"  '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    dt.SaveExcel(dlg.FileName, "表_table1")   '保存文件
    Dim Book As New XLS.Book(dlg.FileName)
    Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表
    Dim Style As XLS.Style = Book.NewStyle() '定义新样式
    Dim Style1 As XLS.Style = Book.NewStyle() '定义新样式
    Style.Format = "0.00%"
    Style1.BackColor = Color.pink 
    For c As Integer = 0 To sheet.Cols.count-1
        If sheet(0,c).text = "占比" Then
            For i As Integer = 2 To sheet.Rows.count-1
                sheet(i, c).Style=Style
            Next
        End If
   Next

    book.save(dlg.FileName)
End  If
共两级汇总,标颜色处如果是第一个汇总要怎么表示

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


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

截图说明一下,要表示成什么样子?

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


加好友 发短信
等级:六尾狐 帖子:1399 积分:10810 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2020/5/6 9:08:00 [只看该作者]

导出数据的过程中,将“占比”列百分比格式化后,原来分组行的背景颜色也没掉了,想恢复背景颜色

图片点击可在新窗口打开查看此主题相关图片如下:5d5ddab1-07c5-42d8-bd9f-59cf2ac6a554.png
图片点击可在新窗口打开查看


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


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

加一个背景颜色
    Dim Book As New XLS.Book(dlg.FileName)
    Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表
    Dim Style As XLS.Style = Book.NewStyle() '定义新样式
    Dim Style1 As XLS.Style = Book.NewStyle() '定义新样式
    Style.Format = "0.00%"
Style.BackColor = Color.pink 
    Style1.BackColor = Color.pink 
    For c As Integer = 0 To sheet.Cols.count-1

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


加好友 发短信
等级:六尾狐 帖子:1399 积分:10810 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2020/5/6 11:01:00 [只看该作者]

这样是整列的背景颜色,我只是想弄汇总行的背景颜色,不知在这里怎么表示汇总行,分组一和分组二的背景颜色不一样

Dim dt As Table = CurrentTable 
Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
dlg.Filter= "Excel文件|*.xls"  '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    dt.SaveExcel(dlg.FileName, "表_table1")   '保存文件
    Dim Book As New XLS.Book(dlg.FileName)
    Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表
    Dim Style As XLS.Style = Book.NewStyle() '定义新样式
    Dim Style1 As XLS.Style = Book.NewStyle() '定义新样式
    Style.Format = "0.00%"
    Style1.BackColor = Color.pink 
    For c As Integer = 0 To sheet.Cols.count-1
        If sheet(0,c).text = "占比" Then
            For i As Integer = 2 To sheet.Rows.count-1
                sheet(i, c).Style=Style
            Next
        End If
Dim r1 As Row
For i As Integer = 0 To dt.Rows.Count(True) - 1
    r1 = dt.Rows(i,True)
    If r1.IsGroup And r1.level=1 Then
                r1.Style=Style1
End If
    Next
   Next

    book.save(dlg.FileName)
End  If

上面代码怎么调整
[此贴子已经被作者于2020/5/6 11:23:47编辑过]

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


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

就是4楼的用法

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


加好友 发短信
等级:六尾狐 帖子:1399 积分:10810 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2020/5/6 12:08:00 [只看该作者]

四楼的用法是对整列生效,背景颜色我只想对汇总行生效,我再测试测试吧

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


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

另外再添加一个样式
Dim Style3 As XLS.Style = Book.NewStyle() '定义新样式
    Style3.Format = "0.00%"
    Style3.BackColor = Color.pink 
    For c As Integer = 0 To sheet.Cols.count-1
        If sheet(0,c).text = "占比" Then
            For i As Integer = 2 To sheet.Rows.count-1
if sheet(i, c).text like "*小计*"
sheet(i, c).Style=Style3
else
                sheet(i, c).Style=Style
endif
            Next
        End If
Dim r1 As Row
For i As Integer = 0 To dt.Rows.Count(True) - 1
     r1 = dt.Rows(i,True)
     If r1.IsGroup And r1.level=1 Then
                 r1.Style=Style1
End If
    Next
   Next

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


加好友 发短信
等级:六尾狐 帖子:1399 积分:10810 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2020/5/6 15:11:00 [只看该作者]

已解决
Dim dt As Table = CurrentTable 
Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
dlg.Filter= "Excel文件|*.xls"  '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    dt.SaveExcel(dlg.FileName, "表_table1")   '保存文件
    Dim Book As New XLS.Book(dlg.FileName)
    Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表
    Dim Style As XLS.Style = Book.NewStyle() '定义新样式
    Dim Style1 As XLS.Style = Book.NewStyle() '定义新样式
    Dim Style2 As XLS.Style = Book.NewStyle() '定义新样式
    Dim Style3 As XLS.Style = Book.NewStyle() '定义新样式
    Style.Format = "0.00%"
    Style1.BackColor = Color.SkyBlue
    Style1.Format = "0.00%"
    Style2.BackColor = Color.pink
    Style2.Format = "0.00%"
    Style3.BackColor = Color.GreenYellow
    Style3.Format = "0.00%"
    For c As Integer = 0 To sheet.Cols.count-1
    For i As Integer = 0 To dt.Rows.count(True)-1
        If sheet(0,c).text = "销售占比" Then
                sheet(i+2, c).Style=Style
        End If
        If sheet(0,c).text = "销售占比" And dt.Rows(i, True).IsGroup  And dt.Rows(i, True).level=1 Then
             Dim a As Integer =dt.grid.Rows(i+2).Index
               sheet(a, c).Style=Style1
        End If
        If sheet(0,c).text = "销售占比" And dt.Rows(i, True).IsGroup  And dt.Rows(i, True).level=0 Then
             Dim a As Integer =dt.grid.Rows(i+2).Index
               sheet(a, c).Style=Style2
        End If
        If sheet(0,c).text = "销售占比" And dt.Rows(i, True).IsGroup  And dt.Rows(i, True).level=-1 Then
             Dim a As Integer =dt.grid.Rows(i+2).Index
               sheet(a, c).Style=Style3
        End If
   Next
Next
    book.save(dlg.FileName)
End  If

sheet(0,c).text = "销售占比" 我想改成sheet(0,c).text like "%占比%"这样又不行,标题行有两层,第一层是名称“销售占比”,如果用like要怎么表示
[此贴子已经被作者于2020/5/6 15:11:46编辑过]

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


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

sheet(0,c).text like "*占比*"

 回到顶部