以文本方式查看主题

-  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=42728)

--  作者:xinqingok
--  发布时间:2013/11/20 13:28:00
--  [求助]基于excel模板导出报表,关于格式设置的问题
基于excel模板导出报表时,保存在excel模板中的“条件格式”不能被继承么?
我想让某一时间列中早于今天的日期背景显示红色,请问该如何设置呢?
请好心人不吝赐教,拜谢。图片点击可在新窗口打开查看

--  作者:Bin
--  发布时间:2013/11/20 14:05:00
--  
需要使用代码设置 http://www.foxtable.com/help/topics/1158.htm
--  作者:狐狸爸爸
--  发布时间:2013/11/20 17:00:00
--  

参考:

http://www.foxtable.com/help/topics/1148.htm

 


--  作者:xinqingok
--  发布时间:2013/11/20 18:00:00
--  
因为是想导出汇总模式的报表,所以用到了excel的模板模式导出,程序代码用的说明书里的,具体如下:

Dim Book As New XLS.Book(ProjectPath & "Attachments\\from-cage.xlsx")
Dim fl As String = ProjectPath & "Reports\\report-cage.xlsx"
Book.Build() \'生成细节区
Book.Save(fl) \'保存工作簿
Dim Proc As New Process \'打开工作簿
Proc.File = fl
Proc.Start()

from-cage.xlsx为模板文件,report-cage.xlsx为导出后的报表文件。已经上传了上来,条目都能导出,但是狐表里“自定义样式表”里的颜色不能导出。希望达到的效果是hope.xls那样的,对特殊值及满足条件的单元格标示颜色。

管理大人说要用代码改,小弟刚接触狐表,代码不是太懂,哪位好心人可指点一二?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:from-cage.xlsx
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:report-cage.xlsx

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:hope.xls




--  作者:有点甜
--  发布时间:2013/11/20 19:32:00
--  
 3楼已经给你答案了,模板是设置不了的,只能是通过代码单独去设置样式。


--  作者:狐狸爸爸
--  发布时间:2013/11/21 8:39:00
--  

还有一个办法,根据模版生成报表之后,用foxtable编码打开这个文件,遍历相关数据,根据数据设置格式。

 

大概如下:

 

\'第一步正常根据模版生成报表
Dim Book As New  XLS.Book(ProjectPath &  "Attachments\\出库单.xls")
Dim fl As  String = ProjectPath  &  "Reports\\出库单.xls"
Book.Build() \'生成细节区
Book.Save(fl) \'保存工作簿
\'第二步对生成的报表二次加工
Book =  New XLS.Book(fl)
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Dim Style As XLS.Style = Book.NewStyle() \'定义新样式
Style.ForeColor = Color.Red \'设置样式的字体颜色
For i As Integer = 0 To sheet.Rows.count -1
    Dim s As String = sheet(i,5).Value \'获取此行第六列的内容
    Dim v As Double = val(v) \'转换为数值,如果大于100
    If v > 100 Then
        sheet(i,5).Style = style
    End If
Next
Book.Save(fl) \'保存工作簿
\'第三步,打开生成好的报表
Dim Proc As  New  Process  \'打开工作簿
Proc.File = fl
Proc.Start()