表格6666 发表于 2024-1-10 16:58:53

GCExcel IRange.Copy方法在50列4000行执行需要一天

本帖最后由 Richard.Ma 于 2024-3-4 18:03 编辑

产品:GcExcel.net
版本:V6.2.5
问题编号:DOCXLS-9623
LastReview:2024/2/20
该问题已经在7.0.3修复

无任何数据内容,仅仅是Copy方法上面是代码。附件包含json内容
第7列开始,时间指数级增长





Richard.Ma 发表于 2024-1-10 17:31:21

请将上述的json文件上传上来。我们验证一下

Richard.Ma 发表于 2024-1-10 18:04:44

如果你没有特殊的需求的话,实际上可以一次性复制整个区域
参考下面的代码,

            var sourceRange = workbook.Worksheets.Range.ColumnCount];
            var targetRange = targetWorkbook.Worksheets.Range.ColumnCount];
            CopeStyle(sourceRange, targetRange);

表格6666 发表于 2024-1-10 18:06:26

Richard.Ma 发表于 2024-1-10 18:04
如果你没有特殊的需求的话,实际上可以一次性复制整个区域
参考下面的代码,

这个代码例子只是示例,需要将source复制到target,source是模板,target是需要承载数据的具体sheet。区域大小是不一致的

表格6666 发表于 2024-1-10 18:49:54

Richard.Ma 发表于 2024-1-10 18:04
如果你没有特殊的需求的话,实际上可以一次性复制整个区域
参考下面的代码,

整体区域复制不太符合我们的场景,我们除了复制到列,同样也有复制到行的,并且每列、每行是存在内容区别的

Richard.Ma 发表于 2024-1-11 14:21:51

代码中的性能 问题,目前已经报研发调研,后续进展我会在帖子中更新
DOCXLS-9623

Richard.Ma 发表于 2024-1-12 18:51:44

性能问题是由复制时对条件格式的处理引起的。

可以参考下面的修改后的代码解决目前场景的问题


Richard.Ma 发表于 2024-1-16 11:23:12

本帖最后由 Ellia.Duan 于 2024-2-22 14:56 编辑

另外,更新一下,这个性能问题在产品后续的版本中也计划进行优化。

Richard.Ma 发表于 2024-2-22 15:04:41

此问题已经在V7.0.3版本中修复,请更新版本后测试

页: [1]
查看完整版本: GCExcel IRange.Copy方法在50列4000行执行需要一天