Foxtable(狐表)用户栏目专家坐堂 → 怎样精简excel报表中的样式定义代码?


  共有12322人关注过本帖树形打印复制链接

主题:怎样精简excel报表中的样式定义代码?

帅哥哟,离线,有人找我吗?
reachtone
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19363 威望:0 精华:20 注册:2008/9/2 10:09:00
怎样精简excel报表中的样式定义代码?  发帖心情 Post By:2010/5/14 10:39:00 [只看该作者]

由于在生成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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19363 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2010/5/14 11:05:00 [只看该作者]

这个代码真是精简,太感谢了!

 回到顶部
美女呀,离线,留言给我吧!
yangming
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2010/5/14 12:21:00 [只看该作者]

收藏学习了!


 回到顶部
帅哥哟,离线,有人找我吗?
i52117
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:374 积分:3147 威望:0 精华:0 注册:2009/2/3 9:55:00
  发帖心情 Post By:2010/5/14 14:08:00 [只看该作者]

图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2010/5/14 14:51:00 [只看该作者]

学习

 回到顶部
帅哥哟,离线,有人找我吗?
卟离卟弃
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1181 积分:8108 威望:0 精华:1 注册:2009/1/17 10:52:00
  发帖心情 Post By:2010/5/14 15:08:00 [只看该作者]

学习。。。。

 回到顶部