以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  怎样精简excel报表中的样式定义代码?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=7100)

--  作者:reachtone
--  发布时间:2010/5/14 10:39:00
--  怎样精简excel报表中的样式定义代码?

由于在生成excel时,需要定义各种不同的数据样式,如:

 

Dim Style1 As XLS.Style = Book.NewStyle()    \'双精度样式
Style1.BorderTop = XLS.LineStyleEnum.Thin
Style1.BorderBottom = XLS.LineStyleEnum.Thin
Style1.BorderLeft = XLS.LineStyleEnum.Thin
Style1.BorderRight = XLS.LineStyleEnum.Thin
Style1.BorderColorTop = Color.Gray
Style1.BorderColorBottom = Color.Gray
Style1.BorderColorLeft = Color.Gray
Style1.BorderColorRight = Color.Gray
Style1.Format = Format("0.00")
Dim Style2 As XLS.Style = Book.NewStyle()    \'百分比样式
Style2.BorderTop = XLS.LineStyleEnum.Thin
Style2.BorderBottom = XLS.LineStyleEnum.Thin
Style2.BorderLeft = XLS.LineStyleEnum.Thin
Style2.BorderRight = XLS.LineStyleEnum.Thin
Style2.BorderColorTop = Color.Gray
Style2.BorderColorBottom = Color.Gray
Style2.BorderColorLeft = Color.Gray
Style2.BorderColorRight = Color.Gray
Style2.Format = Format("0.00%")
Dim S
tyle3 As XLS.Style = Book.NewStyle()    \'日期样式
Style3.BorderTop = XLS.LineStyleEnum.Thin
Style3.BorderBottom = XLS.LineStyleEnum.Thin
Style3.BorderLeft = XLS.LineStyleEnum.Thin
Style3.BorderRight = XLS.LineStyleEnum.Thin
Style3.BorderColorTop = Color.Gray
Style3.BorderColorBottom = Color.Gray
Style3.BorderColorLeft = Color.Gray
Style3.BorderColorRight = Color.Gray
Style3.Format = Format("yyyy-MM-dd")
。。。

 

通过上面的代码可以看出,每个样式的Border类设置都是一样的,只有format不一样。怎样简化这样的代码呢?我想一次性定义多个样式,然后用循环的方式把每个样式的Border类属性统一设置。这样的话,代码就很精简了。但测试了多次,都不成功。请指教!

[此贴子已经被作者于2010-5-14 10:42:10编辑过]

--  作者:狐狸爸爸
--  发布时间:2010/5/14 10:49:00
--  

Dim s(2) As XLS.Style

For i As Integer = 0 To 2

    S(i) = Book.NewStyle

    S(i).BorderTop = XLS.LineStyleEnum.Thin
    S(i).BorderBottom = XLS.LineStyleEnum.Thin
    S(i).BorderLeft = XLS.LineStyleEnum.Thin
    S(i).BorderRight = XLS.LineStyleEnum.Thin
    S(i).BorderColorTop = Color.Gray
    S(i).BorderColorBottom = Color.Gray
    S(i).BorderColorLeft = Color.Gray
    S(i).BorderColorRight = Color.Gray
Next

S(0).Format = Format("0.00")
S(1).Format = Format("0.00%")
S(2).Format = Format("yyyy-MM-dd")

[此贴子已经被作者于2010-5-14 10:49:54编辑过]

--  作者:reachtone
--  发布时间:2010/5/14 11:05:00
--  
这个代码真是精简,太感谢了!
--  作者:yangming
--  发布时间:2010/5/14 12:21:00
--  

收藏学习了!


--  作者:i52117
--  发布时间:2010/5/14 14:08:00
--  
图片点击可在新窗口打开查看
--  作者:blackzhu
--  发布时间:2010/5/14 14:51:00
--  
学习
--  作者:卟离卟弃
--  发布时间:2010/5/14 15:08:00
--  
学习。。。。