以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  EXCEL报表导出格式问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=119434)

--  作者:龙虾侠
--  发布时间:2018/5/24 18:10:00
--  EXCEL报表导出格式问题
你好!
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()


--  作者:有点甜
--  发布时间: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()

--  作者:龙虾侠
--  发布时间:2018/5/28 18:12:00
--  
你这里面没有指定某一列条件大于0.15啊,我需要指定列的
--  作者:有点甜
--  发布时间: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()


--  作者:龙虾侠
--  发布时间: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
可以吗?
我的需求是是要整列变色

--  作者:有点甜
--  发布时间:2018/5/30 12:49:00
--  
照抄4楼代码,修改红色代码即可啊。
--  作者:龙虾侠
--  发布时间: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变色,这要怎么做到呢

--  作者:有点甜
--  发布时间: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()

--  作者:龙虾侠
--  发布时间:2018/5/30 14:52:00
--  
这也只是一个单元格变色啊,我要指定范围内的单元格一起变色啊
--  作者:有点甜
--  发布时间: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