Foxtable(狐表)用户栏目专家坐堂 → EXCEL报表导出格式问题


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

主题:EXCEL报表导出格式问题

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


加好友 发短信
等级:婴狐 帖子:6 积分:107 威望:0 精华:0 注册:2018/5/24 18:02:00
EXCEL报表导出格式问题  发帖心情 Post By:2018/5/24 18:10:00 [只看该作者]

你好!
Dim Book As New XLS.Book(ProjectPath & "Attachments\超期周报.xls")
Dim fl As String = ProjectPath & "Reports\超期周报.xls"
Book.Build() '生成细节区
Book.Save(fl) '保存工作簿
Dim Proc As New Process '打开工作簿
Proc.File = fl
Proc.Start()

以上这段代码是生成一张EXCEL报表
我想在这里新增一个条件格式,例如“天数>0,<=7”,这一行单元格显示红色
我在帮助中找到以下这段代码,可是不知道如何插进上面代码中

Dim dt As Table = Tables("订单")
Dim
Book As New XLS.Book '定义一个Excel工作簿
Dim
Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表
Dim
Style As Xls.Style = Book.NewStyle '新建一个样式
Style.BackColor = Color.Red '样式的背景颜色设为红色
For
c As Integer = 0 To dt.Cols.Count -1 '添加列标题
    Sheet(0, c).Value = dt.Cols(c).Name
Next
For
r As Integer = 0 To dt.Rows.Count - 1 '填入数据
   
For c As Integer = 0 To dt.Cols.Count -1
        Sheet(r +1, c).Value = dt.rows(r)(c)
    Next
    If
dt.rows(r)("折扣") >= 0.15 Then '如果折扣大于等于0.15
        Sheet(r + 1,dt.Cols("折扣").Index).Style = Style '设置折扣单元格的样式
   
End If
Next

'打开工作簿

Book.Save("c:\reports\test.xls")
Dim
Proc As New Process
Proc.File = "c:\reports\test.xls"
Proc.Start()


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


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

Dim Book As New XLS.Book(ProjectPath & "Attachments\超期周报.xls")
Dim fl As String = ProjectPath & "Reports\超期周报.xls"
Book.Build() '生成细节区
Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表
Dim Style As Xls.Style = Book.NewStyle '新建一个样式
Style.BackColor = Color.Red '样式的背景颜色设为红色
For r As Integer = 0 To sheet.Rows.count-1
    If  Sheet(r+1,1).text >= 0.15 Then '如果折扣大于等于0.15
        Sheet(r+1,1).Style = Style '设置折扣单元格的样式
    End If
Next
Book.Save(fl) '保存工作簿
Dim Proc As New Process '打开工作簿
Proc.File = fl
Proc.Start()

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


加好友 发短信
等级:婴狐 帖子:6 积分:107 威望:0 精华:0 注册:2018/5/24 18:02:00
  发帖心情 Post By:2018/5/28 18:12:00 [只看该作者]

你这里面没有指定某一列条件大于0.15啊,我需要指定列的

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


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

红色的行列,自己指定啊

 

Dim Book As New XLS.Book(ProjectPath & "Attachments\超期周报.xls")
Dim fl As String = ProjectPath & "Reports\超期周报.xls"
Book.Build() '生成细节区
Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表
Dim Style As Xls.Style = Book.NewStyle '新建一个样式
Style.BackColor = Color.Red '样式的背景颜色设为红色
For r As Integer = 0 To sheet.Rows.count-1
    If  Sheet(r+1,1).text >= 0.15 Then '如果折扣大于等于0.15
        Sheet(r+1,1).Style = Style '设置折扣单元格的样式
    End If
Next
Book.Save(fl) '保存工作簿
Dim Proc As New Process '打开工作簿
Proc.File = fl
Proc.Start()


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


加好友 发短信
等级:婴狐 帖子:6 积分:107 威望:0 精华:0 注册:2018/5/24 18:02:00
  发帖心情 Post By:2018/5/30 11:50:00 [只看该作者]

For r As Integer = 0 To sheet.Rows.count-1 这段定义行
那个我定义列 :
For i As Integer = 0 To sheet.Columns.count-1
可以吗?
我的需求是是要整列变色

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


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

照抄4楼代码,修改红色代码即可啊。

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


加好友 发短信
等级:婴狐 帖子:6 积分:107 威望:0 精华:0 注册:2018/5/24 18:02:00
  发帖心情 Post By:2018/5/30 13:42:00 [只看该作者]

Dim Book As New XLS.Book(ProjectPath & "Attachments\超期周报.xls")
Dim fl As String = ProjectPath & "Reports\超期周报.xls"
Book.Build() '生成细节区
Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表
Dim Style As Xls.Style = Book.NewStyle '新建一个样式
Style.BackColor = Color.Green '样式的背景颜色设为红色
For r As Integer = 0 To sheet.Rows.count-1
 For i As Integer = 0 To sheet.Cols.count-1
    If  VAL(Sheet(r+1,5).text) > 0 AndAlso VAL(Sheet(r+1,5).text) <= 7 Then '如果天数小于等于7大于0
        Sheet(r+1,i).Style = Style '设置列格式
    End If
 Next
Next
Book.Save(fl) '保存工作簿
Dim Proc As New Process '打开工作簿
Proc.File = fl
Proc.Start()


我现在研究出来是这样,满足条件能够整行变色,但是如果我需要的是:第7行满足条件,B7:E7变色,这要怎么做到呢

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


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

Dim Book As New XLS.Book(ProjectPath & "Attachments\超期周报.xls")
Dim fl As String = ProjectPath & "Reports\超期周报.xls"
Book.Build() '生成细节区
Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表
Dim Style As Xls.Style = Book.NewStyle '新建一个样式
Style.BackColor = Color.Green '样式的背景颜色设为红色
For r As Integer = 0 To sheet.Rows.count-1
    If  VAL(Sheet(r+1,5).text) > 0 AndAlso VAL(Sheet(r+1,5).text) <= 7 Then '如果天数小于等于7大于0
        Sheet(r+1,5).Style = Style '设置列格式
    End I
Next
Book.Save(fl) '保存工作簿
Dim Proc As New Process '打开工作簿
Proc.File = fl
Proc.Start()

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


加好友 发短信
等级:婴狐 帖子:6 积分:107 威望:0 精华:0 注册:2018/5/24 18:02:00
  发帖心情 Post By:2018/5/30 14:52:00 [只看该作者]

这也只是一个单元格变色啊,我要指定范围内的单元格一起变色啊

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


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

    If  VAL(Sheet(r+1,5).text) > 0 AndAlso VAL(Sheet(r+1,5).text) <= 7 Then '如果天数小于等于7大于0
        Sheet(r+1,1).Style = Style '设置列格式
        Sheet(r+1,2).Style = Style '设置列格式
        Sheet(r+1,3).Style = Style '设置列格式
    End I

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