请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

sxyweiren

中级会员

73

主题

366

帖子

755

积分

中级会员

积分
755

活字格认证微信认证勋章

sxyweiren
中级会员   /  发表于:2016-12-22 13:58  /   查看:6573  /  回复:14
由于实际需要,现有一个300列左右,行数未定的Spread,需要在读入数据以后,根据数据把每个单元格设置为不同的颜色。

但是数量级达到1000以上的时候,就出现了性能问题。
比如:单纯的设置每个单元格BackColor,ForeColor,Lock属性的时间就达到了40秒,严重影响了客户体验。

有没有什么好的方法能让颜色的设置快一些,或者有没有什么多线程设置Spread背景色的例子?

程序大体思路:
针对于Spread的没一行
    如果第一列的值=已确认
         第一列的单元格颜色设置为红色
    如果第一列的值=已驳回
         第一列的单元格颜色设置为黄色
    其他
        白色

   第二列

   第三列
……

14 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-12-22 16:34:52
沙发
您尝试先设置  fpSpd.AllowCellOverflow = false; 在循环试试。

如果还是慢的话发一个Demo过来

  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.     }
复制代码
回复 使用道具 举报
sxyweiren
中级会员   /  发表于:2016-12-22 16:50:56
板凳
dexteryao 发表于 2016-12-22 16:34
您尝试先设置  fpSpd.AllowCellOverflow = false; 在循环试试。

如果还是慢的话发一个Demo过来

默认的AllowCellOverFlow就是False,所以应该不是这个的问题。
回复 使用道具 举报
sxyweiren
中级会员   /  发表于:2016-12-22 16:54:33
地板
dexteryao 发表于 2016-12-22 16:34
您尝试先设置  fpSpd.AllowCellOverflow = false; 在循环试试。

如果还是慢的话发一个Demo过来

关于Demo的,由于我现在是实际项目里面用的,涉及到了DB什么的,你们那里跑不起来,所以我就把针对每一行设定颜色的代码抽出了一部分,贴出来了。

  1. Sub Set_Color_Row(ByRef Row As Integer, ByRef Spd As SpreadConv.SpreadConv)

  2.         Spd.ActiveSheet.Cells(Row - 1, G_Col_Head - 1).ForeColor = Lbl_Color_Def.ForeColor

  3.         Spd.ActiveSheet.Cells(Row - 1, G_Col_Head - 1).BackColor = Lbl_Color_Def.BackColor

  4.         Spd.ActiveSheet.Cells(Row - 1, G_Col_Time - 1, Row - 1, Spd.MaxCols - 1).ForeColor = Lbl_Color_Def.ForeColor

  5.         Spd.ActiveSheet.Cells(Row - 1, G_Col_Time - 1, Row - 1, Spd.MaxCols - 1).BackColor = Lbl_Color_Def.BackColor



  6.         Call Check_Wrun_Row(Row, Spd)



  7.         If Get_Spd_Num(G_Col_KbnDel, Row, Spd) = 1 Then

  8.             Spd.ActiveSheet.Cells(Row - 1, G_Col_SheetHaba - 1, Row - 1, Spd.MaxCols - 1).Locked = True

  9.             Spd.ActiveSheet.Cells(Row - 1, G_Col_SheetHaba - 1, Row - 1, Spd.MaxCols - 1).ForeColor = Lbl_Color_Del.ForeColor

  10.             Spd.ActiveSheet.Cells(Row - 1, G_Col_SheetHaba - 1, Row - 1, Spd.MaxCols - 1).BackColor = Lbl_Color_Del.BackColor

  11.         ElseIf Get_Spd_Num(G_Col_KbnJyogai, Row, Spd) = 1 Then

  12.             Spd.BlockMode = True

  13.             Spd.Row = Row

  14.             Spd.Col = G_Col_SheetHaba

  15.             Spd.Row2 = Row

  16.             Spd.Col2 = Spd.MaxCols

  17.             Spd.Lock = True

  18.             Spd.BlockMode = False

  19.             Set_Color_Kakutei(Row, Spd, 9, 0, 0)

  20.         ElseIf Get_Spd_Num(G_Col_KbnZaiko, Row, Spd) = 1 Then

  21.             Spd.ActiveSheet.Cells(Row - 1, G_Col_SheetHaba - 1, Row - 1, Spd.MaxCols - 1).Locked = True

  22.             Spd.ActiveSheet.Cells(Row - 1, G_Col_SheetHaba - 1, Row - 1, Spd.MaxCols - 1).ForeColor = Lbl_Color_Zaiko.ForeColor

  23.             Spd.ActiveSheet.Cells(Row - 1, G_Col_SheetHaba - 1, Row - 1, Spd.MaxCols - 1).BackColor = Lbl_Color_Zaiko.BackColor

  24.         Else

  25.             Spd.BlockMode = True

  26.             Spd.Row = Row

  27.             Spd.Col = G_Col_SheetHaba

  28.             Spd.Row2 = Row

  29.             Spd.Col2 = Spd.MaxCols

  30.             Spd.Lock = False

  31.             Spd.BlockMode = False

  32.             Spd.Col = G_Col_SouCatSu : Spd.Row = Row : Spd.Lock = False

  33.             Spd.Col = G_Col_CatSu : Spd.Row = Row : Spd.Lock = False

  34.             If Get_Spd_Num(G_Col_Zen, Row, Spd) = 1 Then

  35.                 Spd.Col = G_Col_SL : Spd.Lock = True

  36.                 Spd.Col = G_Col_Kei : Spd.Lock = True

  37.                 Spd.Col = G_Col_SC1 : Spd.Lock = True

  38.                 Spd.Col = G_Col_SC2 : Spd.Lock = True

  39.                 Spd.Col = G_Col_SC3 : Spd.Lock = True

  40.                 Spd.Col = G_Col_SC4 : Spd.Lock = True

  41.                 Spd.Col = G_Col_SC5 : Spd.Lock = True

  42.                 Spd.Col = G_Col_SC6 : Spd.Lock = True

  43.                 Spd.Col = G_Col_SC7 : Spd.Lock = True

  44.                 Spd.Col = G_Col_SC8 : Spd.Lock = True

  45.                 Spd.Col = G_Col_SC9 : Spd.Lock = True

  46.                 Spd.Col = G_Col_Torisu : Spd.Lock = True

  47.                 Spd.Col = G_Col_SitaSL : Spd.Lock = True

  48.                 If Get_Spd_Num(G_Col_Jyuchu_全板, Row, Spd) = 1 Then

  49.                     Spd.Col = G_Col_Zen : Spd.Lock = True

  50.                     Spd.Col = G_Col_Dansai : Spd.Lock = True

  51.                 End If



  52.             Else

  53.                 Spd.Col = G_Col_SL : Spd.Row = Row : Spd.Lock = False

  54.                 Spd.Col = G_Col_Kei : Spd.Row = Row : Spd.Lock = False

  55.                 Spd.Col = G_Col_SC1 : Spd.Row = Row : Spd.Lock = False

  56.                 Spd.Col = G_Col_SC2 : Spd.Row = Row : Spd.Lock = False

  57.                 Spd.Col = G_Col_SC3 : Spd.Row = Row : Spd.Lock = False

  58.                 Spd.Col = G_Col_SC4 : Spd.Row = Row : Spd.Lock = False

  59.                 Spd.Col = G_Col_SC5 : Spd.Row = Row : Spd.Lock = False

  60.                 Spd.Col = G_Col_SC6 : Spd.Row = Row : Spd.Lock = False

  61.                 Spd.Col = G_Col_SC7 : Spd.Row = Row : Spd.Lock = False

  62.                 Spd.Col = G_Col_SC8 : Spd.Row = Row : Spd.Lock = False

  63.                 Spd.Col = G_Col_SC9 : Spd.Row = Row : Spd.Lock = False

  64.                 Spd.Col = G_Col_Torisu : Spd.Row = Row : Spd.Lock = False

  65.                 Spd.Col = G_Col_SitaSL : Spd.Row = Row : Spd.Lock = False

  66.             End If

  67.             If Get_Spd_Num(G_Col_DakuNo, Row, Spd) = 1 Then

  68.                 Spd.ActiveSheet.Cells(Row - 1, G_Col_SouCatSu - 1).Locked = True

  69.                 Spd.ActiveSheet.Cells(Row - 1, G_Col_CatSu - 1, Row - 1, Spd.MaxCols - 1).Locked = False

  70.                 Spd.ActiveSheet.Cells(Row - 1, G_Col_SouCatSu - 1, Row - 1, Spd.MaxCols - 1).ForeColor = Lbl_Color_Daku.ForeColor

  71.                 Spd.ActiveSheet.Cells(Row - 1, G_Col_SouCatSu - 1, Row - 1, Spd.MaxCols - 1).BackColor = Lbl_Color_Daku.BackColor

  72.             Else

  73.                 If Get_Spd_Num(G_Col_DakuNo, Row, Spd) > 1 Then

  74.                     Spd.ActiveSheet.Cells(Row - 1, G_Col_SouCatSu - 1).Locked = True

  75.                     Spd.ActiveSheet.Cells(Row - 1, G_Col_CatSu - 1, Row - 1, Spd.MaxCols - 1).Locked = False

  76.                     Spd.ActiveSheet.Cells(Row - 1, G_Col_SouCatSu - 1, Row - 1, Spd.MaxCols - 1).ForeColor = Lbl_Color_Daku_Ko.ForeColor

  77.                     Spd.ActiveSheet.Cells(Row - 1, G_Col_SouCatSu - 1, Row - 1, Spd.MaxCols - 1).BackColor = Lbl_Color_Daku_Ko.BackColor

  78.                 Else

  79.                     Spd.ActiveSheet.Cells(Row - 1, G_Col_SheetHaba - 1, Row - 1, Spd.MaxCols - 1).ForeColor = Lbl_Color_Def.ForeColor

  80.                     Spd.ActiveSheet.Cells(Row - 1, G_Col_SheetHaba - 1, Row - 1, Spd.MaxCols - 1).BackColor = Lbl_Color_Def.BackColor

  81.                 End If

  82.             End If

  83.             If Get_Spd_Num(G_Col_KbnOchibo, Row, SpdKeikaku) = 1 Then



  84.                 Spd.ActiveSheet.Cells(Row - 1, G_Col_Time - 1).ForeColor = Lbl_Color_RotOchibo.ForeColor

  85.                 Spd.ActiveSheet.Cells(Row - 1, G_Col_Time - 1).BackColor = Lbl_Color_RotOchibo.BackColor

  86.             Else

  87.                 If Get_Spd_Num(G_Col_KbnHinOchibo, Row, SpdKeikaku) = 1 Then

  88.                     Spd.ActiveSheet.Cells(Row - 1, G_Col_Time - 1).ForeColor = Lbl_Color_HinOchibo.ForeColor

  89.                     Spd.ActiveSheet.Cells(Row - 1, G_Col_Time - 1).BackColor = Lbl_Color_HinOchibo.BackColor

  90.                 End If

  91.             End If

  92.             If Get_Spd_Num(G_Col_KbnWrun, Row, Spd) = 1 Then

  93.                 Spd.ActiveSheet.Cells(Row - 1, G_Col_SheetHaba - 1, Row - 1, Spd.MaxCols - 1).ForeColor = Lbl_Color_Wrun.ForeColor

  94.                 Spd.ActiveSheet.Cells(Row - 1, G_Col_SheetHaba - 1, Row - 1, Spd.MaxCols - 1).BackColor = Lbl_Color_Wrun.BackColor

  95.             End If

  96.             If Get_Spd_Num(G_Col_Hari_ロット固定, Row, Spd) = 1 Then

  97.                 Spd.ActiveSheet.Cells(Row - 1, G_Col_Time - 1).ForeColor = Lbl_Color_Rot.ForeColor

  98.                 Spd.ActiveSheet.Cells(Row - 1, G_Col_Time - 1).BackColor = Lbl_Color_Rot.BackColor

  99.             End If



  100.             Set_Color_Err(Row, Spd)

  101.         End If





  102.         If Get_Spd_Str(G_Col_Iro1, Row, Spd) <> "" Then

  103.             Spd.Row = Row

  104.             Spd.Col = G_Col_Iro1

  105.             If Get_Spd_Num(G_Col_Paretto1, Row, Spd) <> 0 Then

  106.                 Spd.ActiveSheet.Cells(Row - 1, G_Col_Iro1 - 1).ForeColor = System.Drawing.ColorTranslator.FromOle(Get_Spd_Num(G_Col_Paretto1, Row, Spd))

  107.             Else

  108.                 Spd.ActiveSheet.Cells(Row - 1, G_Col_Iro1 - 1).ForeColor = System.Drawing.ColorTranslator.FromOle(0)

  109.             End If

  110.             If Get_Spd_Num(G_Col_ParettoB1, Row, Spd) <> 0 Then

  111.                 Spd.ActiveSheet.Cells(Row - 1, G_Col_Iro1 - 1).BackColor = System.Drawing.ColorTranslator.FromOle(Get_Spd_Num(G_Col_ParettoB1, Row, Spd))

  112.             Else

  113.                 Spd.ActiveSheet.Cells(Row - 1, G_Col_Iro1 - 1).BackColor = System.Drawing.ColorTranslator.FromOle(16777215)

  114.             End If

  115.         End If

  116.         If Get_Spd_Str(G_Col_Iro2, Row, Spd) <> "" Then

  117.             Spd.Row = Row

  118.             Spd.Col = G_Col_Iro2

  119.             If Get_Spd_Num(G_Col_Paretto2, Row, Spd) <> 0 Then

  120.                 Spd.ActiveSheet.Cells(Row - 1, G_Col_Iro2 - 1).ForeColor = System.Drawing.ColorTranslator.FromOle(Get_Spd_Num(G_Col_Paretto2, Row, Spd))

  121.             Else

  122.                 Spd.ActiveSheet.Cells(Row - 1, G_Col_Iro2 - 1).ForeColor = System.Drawing.ColorTranslator.FromOle(0)

  123.             End If

  124.             If Get_Spd_Num(G_Col_ParettoB2, Row, Spd) <> 0 Then

  125.                 Spd.ActiveSheet.Cells(Row - 1, G_Col_Iro2 - 1).BackColor = System.Drawing.ColorTranslator.FromOle(Get_Spd_Num(G_Col_ParettoB2, Row, Spd))

  126.             Else

  127.                 Spd.ActiveSheet.Cells(Row - 1, G_Col_Iro2 - 1).BackColor = System.Drawing.ColorTranslator.FromOle(16777215)

  128.             End If

  129.         End If

  130.         If Get_Spd_Str(G_Col_Iro3, Row, Spd) <> "" Then

  131.             Spd.Row = Row

  132.             Spd.Col = G_Col_Iro3

  133.             If Get_Spd_Num(G_Col_Paretto3, Row, Spd) <> 0 Then

  134.                 Spd.ActiveSheet.Cells(Row - 1, G_Col_Iro3 - 1).ForeColor = System.Drawing.ColorTranslator.FromOle(Get_Spd_Num(G_Col_Paretto3, Row, Spd))

  135.             Else

  136.                 Spd.ActiveSheet.Cells(Row - 1, G_Col_Iro3 - 1).ForeColor = System.Drawing.ColorTranslator.FromOle(0)

  137.             End If

  138.             If Get_Spd_Num(G_Col_ParettoB3, Row, Spd) <> 0 Then

  139.                 Spd.ActiveSheet.Cells(Row - 1, G_Col_Iro3 - 1).BackColor = System.Drawing.ColorTranslator.FromOle(Get_Spd_Num(G_Col_ParettoB3, Row, Spd))

  140.             Else

  141.                 Spd.ActiveSheet.Cells(Row - 1, G_Col_Iro3 - 1).BackColor = System.Drawing.ColorTranslator.FromOle(16777215)

  142.             End If

  143.         End If



  144.         If Get_Spd_Str(G_Col_Iro4, Row, Spd) <> "" Then

  145.             Spd.Row = Row

  146.             Spd.Col = G_Col_Iro4



  147.             If Get_Spd_Num(G_Col_Paretto4, Row, Spd) <> 0 Then

  148.                 Spd.ActiveSheet.Cells(Row - 1, G_Col_Iro4 - 1).ForeColor = System.Drawing.ColorTranslator.FromOle(Get_Spd_Num(G_Col_Paretto4, Row, Spd))

  149.             Else

  150.                 Spd.ActiveSheet.Cells(Row - 1, G_Col_Iro4 - 1).ForeColor = System.Drawing.ColorTranslator.FromOle(0)

  151.             End If

  152.             If Get_Spd_Num(G_Col_ParettoB4, Row, Spd) <> 0 Then

  153.                 Spd.ActiveSheet.Cells(Row - 1, G_Col_Iro4 - 1).BackColor = System.Drawing.ColorTranslator.FromOle(Get_Spd_Num(G_Col_ParettoB4, Row, Spd))

  154.             Else

  155.                 Spd.ActiveSheet.Cells(Row - 1, G_Col_Iro4 - 1).BackColor = System.Drawing.ColorTranslator.FromOle(16777215)

  156.             End If

  157.         End If



  158.         If Microsoft.VisualBasic.Left(Get_Spd_Str(G_Col_Tokui, Row, Spd), 3) = "大内段" Then

  159.             Spd.ActiveSheet.Cells(Row - 1, G_Col_Tokui - 1).BackColor = System.Drawing.ColorTranslator.FromOle(&HC0E0FF)

  160.         End If



  161.         If Get_Spd_Num(G_Col_配送CD, Row, Spd) <> 0 Then

  162.             Spd.ActiveSheet.Cells(Row - 1, G_Col_Haiso - 1).ForeColor = System.Drawing.ColorTranslator.FromOle(CInt(Get_Spd_Str(G_Col_配送文字カラー, Row, Spd)))

  163.         End If





  164.         If VBUP.VBUP.Format(Get_Spd_Str(G_Col_Jyuchu_納期, Row, Spd), "YYYY/MM/DD") <= VBUP.VBUP.Format(G_DATE, "YYYY/MM/DD") Then

  165.             Spd.ActiveSheet.Cells(Row - 1, G_Col_Nouki - 1).BackColor = System.Drawing.ColorTranslator.FromOle(&HC0C0FF)

  166.         End If





  167.         Select Case Get_Spd_Num(G_Col_Hari_確定区分, Row, Spd)

  168.             Case 1

  169.                 Spd.ActiveSheet.Cells(Row - 1, 0, Row - 1, Spd.MaxCols - 1).Locked = False

  170.                 Spd.ActiveSheet.Cells(Row - 1, G_Col_Head - 1).ForeColor = Lbl_Color_KariKakutei.ForeColor

  171.                 Spd.ActiveSheet.Cells(Row - 1, G_Col_Head - 1).BackColor = Lbl_Color_KariKakutei.BackColor

  172.                 Spd.ActiveSheet.Cells(Row - 1, G_Col_Head - 1).Text = "仮"

  173.             Case 2, 3

  174.                 Select Case Get_Spd_Num(G_Col_Hari_直区分, Row, Spd)

  175.                     Case 1

  176.                         Spd.ActiveSheet.Cells(Row - 1, 0, Row - 1, Spd.MaxCols - 1).Locked = True

  177.                         If Get_Spd_Num(G_Col_Hari_確定区分, Row, Spd) = 2 Then

  178.                             Spd.ActiveSheet.Cells(Row - 1, G_Col_Head - 1).ForeColor = Lbl_Color_1Tyoku.ForeColor

  179.                             Spd.ActiveSheet.Cells(Row - 1, G_Col_Head - 1).BackColor = Lbl_Color_1Tyoku.BackColor

  180.                             Spd.ActiveSheet.Cells(Row - 1, G_Col_Head - 1).Text = "1"

  181.                         Else

  182.                             Spd.ActiveSheet.Cells(Row - 1, G_Col_Head - 1).ForeColor = Lbl_Color_Sousin.ForeColor

  183.                             Spd.ActiveSheet.Cells(Row - 1, G_Col_Head - 1).BackColor = Lbl_Color_Sousin.BackColor

  184.                             Spd.ActiveSheet.Cells(Row - 1, G_Col_Head - 1).Text = "1"

  185.                         End If

  186.                     Case 2

  187.                         Spd.ActiveSheet.Cells(Row - 1, 0, Row - 1, Spd.MaxCols - 1).Locked = True

  188.                         If Get_Spd_Num(G_Col_Hari_確定区分, Row, Spd) = 2 Then

  189.                             Spd.ActiveSheet.Cells(Row - 1, G_Col_Head - 1).ForeColor = Lbl_Color_2Tyoku.ForeColor

  190.                             Spd.ActiveSheet.Cells(Row - 1, G_Col_Head - 1).BackColor = Lbl_Color_2Tyoku.BackColor

  191.                             Spd.ActiveSheet.Cells(Row - 1, G_Col_Head - 1).Text = "2"

  192.                         Else

  193.                             Spd.ActiveSheet.Cells(Row - 1, G_Col_Head - 1).ForeColor = Lbl_Color_Sousin.ForeColor

  194.                             Spd.ActiveSheet.Cells(Row - 1, G_Col_Head - 1).BackColor = Lbl_Color_Sousin.BackColor

  195.                             Spd.ActiveSheet.Cells(Row - 1, G_Col_Head - 1).Text = "2"

  196.                         End If



  197.                 End Select

  198.         End Select

  199.     End Sub
复制代码


回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-12-22 17:41:03
5#
代码收到,我这里再测试下看能重现出来不。
回复 使用道具 举报
sxyweiren
中级会员   /  发表于:2016-12-23 08:51:53
6#
dexteryao 发表于 2016-12-22 17:41
代码收到,我这里再测试下看能重现出来不。

恩,现在数据条数大约是4000,以后基本是累加的
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-12-23 14:12:28
7#
您好,我看到您代码中有大量的 Get_Spd_Num 方法,不清楚里面有什么逻辑。

我简单造了4000行 200列的数据测试。我这里测试下面的代码只需要4秒。

您在加上  fpSpread1.SuspendLayout(); 和             fpSpread1.ResumeLayout(); 在试试。



  1.             label1.Text = DateTime.Now.ToString();
  2.             fpSpread1.SuspendLayout();
  3.             fpSpread1.AllowCellOverflow = false;
  4.             for (var i = 0; i < 4000; i++)
  5.             {
  6.                 for (var j = 0; j < 200; j++)
  7.                 {
  8.                     if ((i + j) % 2 == 0)
  9.                     {
  10.                         fpSpread1.ActiveSheet.Cells[i, j].Locked = true;
  11.                         fpSpread1.ActiveSheet.Cells[i, j].BackColor = Color.Red;
  12.                         fpSpread1.ActiveSheet.Cells[i, j].ForeColor = Color.Green;
  13.                         fpSpread1.ActiveSheet.Cells[i, j].Value = i + "_" + j;
  14.                     }
  15.                     else
  16.                     {
  17.                         fpSpread1.ActiveSheet.Cells[i, j].Locked = false;
  18.                         fpSpread1.ActiveSheet.Cells[i, j].BackColor = Color.Green;
  19.                         fpSpread1.ActiveSheet.Cells[i, j].ForeColor = Color.Red;
  20.                         fpSpread1.ActiveSheet.Cells[i, j].Value = i + "_" + j;
  21.                     }
  22.                 }
  23.             }

  24.             fpSpread1.ActiveSheet.Protect = true;
  25.             fpSpread1.ResumeLayout();
  26.             label2.Text = DateTime.Now.ToString();
复制代码
回复 使用道具 举报
sxyweiren
中级会员   /  发表于:2016-12-23 16:39:52
8#
本帖最后由 sxyweiren 于 2016-12-23 16:41 编辑
dexteryao 发表于 2016-12-23 14:12
您好,我看到您代码中有大量的 Get_Spd_Num 方法,不清楚里面有什么逻辑。

我简单造了4000行 200列的数 ...

我试了一下,fpSpread1.ActiveSheet.Cells[i, j]改成fpSpread1.ActiveSheet.Cells[i, j, i, fpSpread1.ActiveSheet.ColumnCount - 1]就出现了性能问题了。

我的代码里也是这样的逻辑,因为业务需要某一块设置为某种颜色
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-12-23 17:18:47
9#
建议您还是循环单独给cell设置颜色吧,这个还需要再调查下具体问题。
回复 使用道具 举报
sxyweiren
中级会员   /  发表于:2016-12-23 17:24:41
10#
dexteryao 发表于 2016-12-23 17:18
建议您还是循环单独给cell设置颜色吧,这个还需要再调查下具体问题。

……这样的话业务还得梳理下,因为下面的IF条件里面并没有把所有的都给列举出来。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部