找回密码
 立即注册

QQ登录

只需一步,快速开始

sakeryu

初级会员

34

主题

122

帖子

322

积分

初级会员

积分
322

活字格认证

sakeryu
初级会员   /  发表于:2012-7-7 21:54  /   查看:5262  /  回复:1
我有代码如下:
int  curRow=accBookPrintColsInfo.iStartRow;
foreach (DataRow dr in drs)
{
     if (oSheet.RowCount <= curRow)
     {
            oSheet.RowCount++;
      }
      oSheet.CopyRange(accBookPrintColsInfo.iStartRow, 0, curRow, 0, 1, oSheet.ColumnCount, false);//因为accBookPrintColsInfo.iStartRow行有用户设置的样式,所以必须拷贝
    if (accBookPrintInfo.UseTemplateParams == 0)
            oSheet.SetRowHeight(curRow, (int)CM2Pixels((decimal)accBookPrintInfo.RowHeight));
      else
           oSheet.SetRowHeight(curRow, oSheet.GetRowHeight(accBookPrintColsInfo.iStartRow));
        //以下为填写数据,如:
    oSheet.Cells[curRow, accBookPrintColsInfo.iDayCol].Value =****
      ....................
      curRow++;   

我用过度条测试过,感觉是1秒左右才能填写一条数据,请问为什么?如果我把写数据的行全引了,整过循环几秒就完了。

1 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-7-9 11:02:00
沙发
从代码来看你在加载数据,添加行的时候,还对行进行样式设置,比如oSheet.CopyRange()和oSheet.SetRowHeight(),这样会消耗一些性能,你可以先尝试将设置样的代码注释看速度能提升多少

关于性能方面,你还可以先看看这两个帖子:
http://gcdn.grapecity.com/showtopic-2244.html
http://gcdn.grapecity.com/showtopic-2242.html
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部