以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  EXECL报表  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=3377)

--  作者:hejfen
--  发布时间:2009/7/1 11:50:00
--  EXECL报表
EXECL报表怎么样才能好象专业报表那样,标出感兴趣的数据?
--  作者:shxiaoya
--  发布时间:2009/7/1 12:06:00
--  

导出数据

虽然Foxtable已经有导出Excel的功能,但是只能导出数据,不包括格式。
我们可以巧妙地地用Excel报表来实现带格式的导出功能。
例如下面的代码,导出订单表,用红色背景标出折扣超过0.15的单元格:

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()

在命令窗口执行上面的代码,得到:


--  作者:yangming
--  发布时间:2009/7/1 13:04:00
--  
Dim dt As DataTable = DataTables("产品")
Dim Book As New XLS.Book
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Dim Names As List(Of String) = dt.GetUniqueValues("","产品")
For i As Integer = 0 to Names.Count - 1
Dim Style As XLS.Style = Book.NewStyle() \'定义新样式
Style.ForeColor = Color.Red \'设置样式的字体颜色
    Sheet(i + 1, 0).Value = Names(i)
    Sheet(i + 1, 1).Value = dt.Compute("Sum(金额)","[产品] = \'" & Names(i) & "\'")
   If  Sheet(i+1,1).Value > 3000  Then
        Sheet(i+1,1).Style = Style \'设置单元格样式
    End If
Next
Book.Save("c:\\0701.xls")
Dim Proc As New Process
Proc.File = "c:\\0701.xls"
Proc.Start()

--  作者:roy78
--  发布时间:2009/7/1 13:32:00
--  
我为什么看不到图?
--  作者:yangming
--  发布时间:2009/7/1 13:36:00
--  
以下是引用roy78在2009-7-1 13:32:00的发言:
我为什么看不到图?

图没复上来,你自己在帮助中看这页的图


--  作者:hejfen
--  发布时间:2009/7/1 14:25:00
--  

哦,用EXCEL模板就不行吗?


--  作者:yangming
--  发布时间:2009/7/1 14:42:00
--  
模板不行