找回密码
 立即注册

QQ登录

只需一步,快速开始

devmuyuer

注册会员

1

主题

3

帖子

27

积分

注册会员

积分
27
  • 24

    金币

  • 主题

  • 帖子

最新发帖
devmuyuer
注册会员   /  发表于:2016-6-30 11:05  /   查看:3770  /  回复:6
我循环一张Excel表的单元格,可能有400个格子的样子 加上设置单元格背景色
cell.BackColor = Color.Green;的代码后要耗时10秒左右。有没好的解决办法。


6 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-6-30 14:00:51
沙发
您好,可否给帖一段您详细的代码最好能发个可以重现问题的Demo。我这里设置更多的单元格也没有出现卡顿。
  1.             for(int i=0; i < 500; i++)
  2.             {
  3.                 for (int j = 0; j < 40; j++)
  4.                 {
  5.                     fpSpread2.Sheets[1].Cells[i, j].BackColor = Color.Red;
  6.                 }
  7.             }
复制代码
回复 使用道具 举报
devmuyuer
注册会员   /  发表于:2016-6-30 14:53:41
板凳
感谢回复,我是先加载了一个excel表后填的色,附件里有一个例子,点填充按钮要等待5秒左右你试试看。

fpSpreadFillColorTest.rar

8.94 MB, 阅读权限: 100, 下载次数: 1

回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-6-30 15:33:36
地板
您好您的Demo已收到并重现问题,应该是和您Excel模板有关,具体原因还在调查,有结果立即与您反馈.
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-7-5 17:29:04
5#
您好,
是由于您单元格设置了AllowCellOverflow  ,每一次设置BackColor 的时候都要做处理,所以变得很慢,解决方案是循环前先设置为false。不过还是建议您还是在模板中就设置好背景色。

  1.             bool oldAllowCellOverflow = fpSpd.AllowCellOverflow;

  2.             fpSpd.AllowCellOverflow = false;

  3.             for (int r = 0; r < 27; r++)
  4.             {
  5.                 for (int c = 0; c < 26; c++)
  6.                 {
  7.                     var rowIndex = r + 5;
  8.                     var colIndex = c + 3;
  9.                     Cell cell = fpSpd.ActiveSheet.Cells[rowIndex, colIndex];
  10.                     if (cell != null)
  11.                     {
  12.                         cell.BackColor = Color.Gray;
  13.                     }
  14.                 }
  15.             }
  16.             fpSpd.AllowCellOverflow = oldAllowCellOverflow;

  17.         }
复制代码
回复 使用道具 举报
devmuyuer
注册会员   /  发表于:2016-9-21 16:28:30
6#
非常感谢!
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-9-21 16:42:01
7#
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部