Foxtable(狐表)用户栏目专家坐堂 → [求助]导出excle分组统计字体颜色和加粗


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

主题:[求助]导出excle分组统计字体颜色和加粗

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106076 积分:539479 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/9/29 16:27:00 [显示全部帖子]

不支持这种用法。需要导出后再使用代码设置:

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106076 积分:539479 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/9/29 17:33:00 [显示全部帖子]

不能这样判断,你要循环Execl表格所有行,判断这行第一个单元格是否包含“小计”这种字符,然后给这行设置样式

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106076 积分:539479 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/9/30 8:29:00 [显示全部帖子]

那就找一些共性的东西,比如“产品”单元格有内容,“客户、雇员”等单元格没有内容的基本算是汇总行

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106076 积分:539479 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/9/30 13:40:00 [显示全部帖子]

Dim file As String = "E:\问题\aaa.xls"
Dim Book As New XLS.Book(file)
Dim Sheet1 As XLS.Sheet = Book.Sheets(0)
Dim Style As XLS.Style = Book.NewStyle() '定义新样式
Style.ForeColor = Color.Red '设置样式的字体颜色
Style.FontBold = True

For n As Integer = 1 To Sheet1.Rows.Count -1
    If Sheet1(n,1).Value = "" Then
        Sheet1(n,0).Style = Style
    End If
Next

Book.Save(file)
Dim Proc As New Process 
Proc.File = file
Proc.Start()

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106076 积分:539479 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/9/30 14:26:00 [显示全部帖子]

改为自己的文件路径啊,这种代码还看不懂?

Dim file As String = "E:\问题\aaa.xls"

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106076 积分:539479 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/9/30 17:40:00 [显示全部帖子]

Dim tt As Table = Tables("室内设计项目")
Dim file As String = "E:\问题\我的项目.xls"
Dim flg As New SaveExcelFlags
flg.CellStyle = True
tt.SaveExcel(file ,tt.name,flg)

Dim Book As New XLS.Book(file)
Dim Sheet1 As XLS.Sheet = Book.Sheets(0)
Dim Style As XLS.Style = Book.NewStyle() '定义新样式
Style.ForeColor = Color.Red '设置样式的字体颜色
Style.FontBold = True

Style.BackColor = Color.DodgerBlue
Style.BorderTop = XLS.LineStyleEnum.None
Style.BorderBottom = XLS.LineStyleEnum.None
Style.BorderLeft = XLS.LineStyleEnum.None
Style.BorderRight = XLS.LineStyleEnum.None

Dim Style2 As XLS.Style = Book.NewStyle() '定义新样式
Style2.BorderTop = XLS.LineStyleEnum.Thin
Style2.BorderBottom = XLS.LineStyleEnum.Thin
Style2.BorderLeft = XLS.LineStyleEnum.Thin
Style2.BorderRight = XLS.LineStyleEnum.Thin
Style2.BorderColorTop = Color.red
Style2.BorderColorBottom = Color.red
Style2.BorderColorLeft = Color.red
Style2.BorderColorRight = Color.red


For n As Integer = 1 To Sheet1.Rows.Count -1
    Output.Show(Sheet1(n,6).Value)
    If Sheet1(n,6).Value = "1" Then
        Sheet1(n,6).Value = "√"
    Else
        Sheet1(n,6).Value = ""
    End If
    If Sheet1(n,1).Value.contains("地址") Then
        If n > 2 Then
            For c As Integer = 0 To 9
                Sheet1 (n,c).Style = Style
            Next
        End If
    Else
        For c As Integer = 0 To 9
            Sheet1 (n,c).Style = Style2
        Next
        'Sheet1(n,0).Style = Style2
    End If
Next

Book.Save(file)
Dim Proc As New Process
Proc.File = file
Proc.Start()

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

If Sheet1(n,c).Style.BackColor.G <> 255  Then

改为

If Sheet1(n,c).Style.BackColor.G <> 255 OrElse Sheet1(n,c).Style.BackColor.R <> 255 OrElse Sheet1(n,c).Style.BackColor.B <> 255 Then


 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

测试了一下,可能是bug,已反馈

 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

这个就没有办法了,必须升级才能解决已有的bug

 回到顶部