以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]excel模板输出报告style设置  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=91346)

--  作者:machle
--  发布时间:2016/10/8 22:09:00
--  [求助]excel模板输出报告style设置
我想用excel模板输出报告,报告中R列为4的时候,想让单元格背景色是红色。但是不成功,请帮我检查一下代码吧。 messagebox能弹出正确的结果,但是style不管用。

谢谢!!


Case "report"
        
        CurrentTable.Filter = ""
        
        CurrentTable.AutoSizeRows()
        

        Dim dt As Table = Tables("分析报告")
        Dim Book As New XLS.Book(ProjectPath & "Attachments\\分析报告ZSY.xls")
        Dim fl As String = ProjectPath & "Reports\\分析报告ZSY.xls"               
        Dim Sheet As XLS.Sheet = Book.Sheets(0) \'引用工作簿的第一个工作表
        Dim Style4 As Xls.Style = Book.NewStyle \'新建一个样式
        Style4.BackColor = Color.Red \'样式的背景颜色设为红色
        
        For r As Integer = 0 To dt.Rows.Count - 1 \'填入数据
            If dt.rows(r)("R") = "4" Then \'如果折扣大于等于0.15
                Sheet(r + 1,dt.Cols("R").Index).Style = Style4 \'设置折扣单元格的样式
                messagebox.show(dt.Cols("R").Index)
            End If
        Next
        
         Book.Build() \'生成细节区

        
        
        Book.Save(fl) \'保存工作簿
        Dim Proc As New Process \'打开工作簿
        Proc.File = fl
        Proc.Start()
        
        CurrentTable.AutoSizeRows()


--  作者:有点蓝
--  发布时间:2016/10/9 9:25:00
--  
先生成细节区,在打开文件进行修改
--  作者:machle
--  发布时间:2016/10/9 20:28:00
--  回复:(有点蓝)先生成细节区,在打开文件进行修改
之前就是先生成细节区,然后修改,不行呢。
--  作者:machle
--  发布时间:2016/10/9 21:30:00
--  回复:(有点蓝)先生成细节区,在打开文件进行修改
还是不行

 
Dim dt As Table = Tables("分析报告")
        Dim Book As New XLS.Book(ProjectPath & "Attachments\\分析报告ZSY.xls")
        Dim fl As String = ProjectPath & "Reports\\分析报告ZSY.xls"               

        Book.Build() \'生成细节区             
        

       
        Dim Sheet As XLS.Sheet = Book.Sheets(0) \'引用工作簿的第一个工作表
        Dim Style4 As Xls.Style = Book.NewStyle \'新建一个样式
        Style4.BackColor = Color.Red \'样式的背景颜色设为红色
        
        For r As Integer = 0 To dt.Rows.Count - 1 \'填入数据
            If dt.rows(r)("R") = "4" Then \'如果折扣大于等于0.15
                Sheet(r + 1,dt.Cols("R").Index).Style = Style4 \'设置折扣单元格的样式
            
                \'Sheet(r + 1,dt.Cols("R").Index).Value ="四"
                \'messagebox.show(dt.Cols("R").Index)
            End If
        Next
        
        Book.Save(fl) \'保存工作簿
        Dim Proc As New Process \'打开工作簿
 
        Proc.File = fl
        Proc.Start()
        
        CurrentTable.AutoSizeRows()


--  作者:有点蓝
--  发布时间:2016/10/10 9:31:00
--  
测试没有问题,上例子说明