开发者论坛

 找回密码
 注册 (请使用非IE浏览器)
查看: 4966|回复: 4

为何ASPOSE.Cells格式化单元格时速度很慢?

[复制链接]

0

精华

0

贡献

1

赞扬

帖子
1
软币
77
在线时间
0 小时
注册时间
2016-8-12
发表于 2016-8-12 10:54:43 | 显示全部楼层 |阅读模式
我利用ASPOSE.Cells生成一个Excel文档,数据有4千行、32列,如果不设置单元格格式,不到1秒钟即可生成,但是如果对单元格进行格式化处理,即调用SetStyle或ApplyStyle,速度降为5分钟以上。
对单元格的格式化,采用了以下三种方式,但三者效率差不多:
(1)填充数据的同时对每个单元格单独设置格式
(2)所有数据生成后,先单独设置第一行的格式,然后将第一行的格式用循环的方法应用到其他行(不知为何不能把一个小区域的格式复制到一个大的区域?)
(3)所有数据生成后,选择各个区域Range,然后ApplyStyle

不知是否有解决办法。

评分

参与人数 1赞扬 +1 收起 理由
computerline + 1 好久没更新了

查看全部评分

回复

使用道具 举报

0

精华

1316

贡献

885

赞扬

版主

帖子
176
软币
8139
在线时间
1139 小时
注册时间
2013-6-10
发表于 2016-8-12 15:48:44 | 显示全部楼层
我的参考意见:
1 确认你的版本,试试最新的版本,避免由于BUG而产生你的这个现象。
2 提供测试代码,让别人试一下
3 直接到官网论坛中搜索一下,是否有类似情况
回复

使用道具 举报

0

精华

545

贡献

685

赞扬

授权已结束

Rank: 18Rank: 18

帖子
237
软币
4232
在线时间
477 小时
注册时间
2013-7-18
发表于 2016-8-13 20:48:53 | 显示全部楼层
aspose的官网论坛非常好,有问必答,建议带着问题和测试代码过去,基本上隔一天就会有反馈。
回复

使用道具 举报

0

精华

574

贡献

129

赞扬

帖子
98
软币
495
在线时间
36 小时
注册时间
2016-1-21
发表于 2016-11-3 12:51:40 | 显示全部楼层
應該先構造一個Style, 然後其他單元格或行(列)再Apply這個Style
回复

使用道具 举报

0

精华

97

贡献

17

赞扬

帖子
21
软币
241
在线时间
19 小时
注册时间
2016-9-29
发表于 2016-12-31 10:36:04 | 显示全部楼层
1. 构建style:
        Dim App_exe_Dir As New IO.FileInfo(Reflection.Assembly.GetExecutingAssembly.FullName)
        Dim xlPath_Template = IO.Path.Combine(App_exe_Dir.DirectoryName, "Resources\AL_Templates.xlsx")
        CommonWorkBook = New Workbook(xlPath_Template)

        HeadingStyle = CommonWorkBook.CreateStyle()
        HeadingStyle.Pattern = BackgroundType.Solid
        HeadingStyle.Borders.Item(BorderType.LeftBorder).LineStyle = CellBorderType.Hair
        HeadingStyle.Borders.Item(BorderType.RightBorder).LineStyle = CellBorderType.Double
        HeadingStyle.ForegroundColor = Color.FromArgb(192, 192, 192)
        HeadingStyle.Font.IsBold = True
        HeadingStyle.HorizontalAlignment = TextAlignmentType.Center


2. 应用 style(一次性的apply 到 cell range):
                           Dim SetHeadingRange As Aspose.Cells.Range = .Cells.CreateRange(CellRowIndex + 4 + ACBO, 11 + k + 3 + ACBO, 1, 13)
                            SetHeadingRange.Merge()
                            SetHeadingRange.SetStyle(HeadingStyle)
回复

使用道具 举报

Archiver|手机版|小黑屋|开发者网 ( 苏ICP备08004430号-2 )
版权所有:南京韵文教育信息咨询有限公司

GMT+8, 2024-12-22 22:44

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表