找回密码
 立即注册

QQ登录

只需一步,快速开始

kfkn

论坛元老

8

主题

17

帖子

6774

积分

论坛元老

积分
6774

活字格认证

kfkn
论坛元老   /  发表于:2011-12-8 10:15  /   查看:6944  /  回复:4
private void Spread区域绑定数据_Load(object sender, EventArgs e)
        {
            Stopwatch st = new Stopwatch();
            st.Start();
            List<dataSource> ld = GetList();
            st.Stop();
            string aa1 = st.Elapsed.ToString();
            st.Restart();
            区域绑定数据(3, 0, ld , fpSpread1);
            st.Stop();
            string aa2 = st.Elapsed.ToString();
            st.Restart();
            fpSpread1_Sheet1.AddRangeGroup(0,1,false);
            fpSpread1_Sheet1.AddRangeGroup(2,1,false);
            for (int i = 3; i < ld.Count;i=i+3 )
            {
             fpSpread1_Sheet1.AddRangeGroup(i, 2, true);
           }
           st.Stop();
           string aa3=st.Elapsed.ToString();
            
            st.Restart();

            SuoXiao(fpSpread1);
            st.Stop();
            string aa4 = st.Elapsed.ToString();

            MessageBox.Show("取数:"+aa1+"\n"+"绑定:"+aa2+"\n"+"大纲"+aa3+"\n"+"展开"+aa4);
        }

        
        public class dataSource
        {
            public string A { get; set; }
            public decimal B { get; set; }
            public DateTime D { get; set; }

            public bool C { get; set; }
            public int E { get; set; }
            public double F { get; set; }
            public string H { get; set; }
            public decimal I { get; set; }


        }


        public static List<dataSource> GetList()
        {
            List<dataSource> ld = new List<dataSource>();

            for (int i = 0; i < 10000; i++)
            {
                dataSource aaa = new dataSource();
                aaa.A = i.ToString("001");
                aaa.B = Convert.ToDecimal(i + 10 * i);
                aaa.D = (new DateTime(2009, 1, 1)).AddMonths(i);
                aaa.C = Convert.ToBoolean(i % 2);
                aaa.E = i;
                aaa.F = (i + 100 * i);
                aaa.H = (i + "aaa" + i).ToString();
                aaa.I = Convert.ToDecimal(i * 1000 + i * 10);
               
                ld.Add(aaa);

            }

            return ld;
        }

4 个回复

倒序浏览
laonawuli
银牌会员   /  发表于:2011-12-8 10:32:00
沙发
原帖由 kfkn 于 2011-12-8 10:15:00 发表
private void Spread区域绑定数据_Load(object sender, EventArgs e)
        {
            Stopwatch st = new Stopwatch();
            st.Start();
            List<dataSource> ld = GetList();
......


//在你的循环前面这么加一下
  fpSpread1.SuspendLayout();
for (int i = 3; i < ld.Count;i=i+3 )
            {
            fpSpread1_Sheet1.AddRangeGroup(i, 2, true);
          }
//后面这么加一下
fpSpread1.ResumeLayout();
回复 使用道具 举报
laonawuli
银牌会员   /  发表于:2011-12-8 10:34:00
板凳
原帖由 kfkn 于 2011-12-8 10:15:00 发表
private void Spread区域绑定数据_Load(object sender, EventArgs e)
        {
            Stopwatch st = new Stopwatch();
            st.Start();
            List<dataSource> ld = GetList();
......


//在你的循环前面这么加一下
  fpSpread1.SuspendLayout();
for (int i = 3; i < ld.Count;i=i+3 )
            {
            fpSpread1_Sheet1.AddRangeGroup(i, 2, true);
          }
//后面这么加一下
fpSpread1.ResumeLayout();
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2011-12-8 11:11:00
地板

回复 1# kfkn 的帖子

你好,不好意思,没有重现你的问题:使用你的方法进行 10000 行数据绑定,再执行 10000次 AddRange ,耗时 26.63 秒。能否发个 Demo 上来,便于重现问题。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2011-12-8 11:12:00
5#

回复 3# laonawuli 的帖子

顶~:share:
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部