ASP.NET 高效导出Excel

前几日在实现asp.net导出excel功能,最后功能是实现了但是速度并不乐观,2000多条数据导出excel需要花费5分钟左右时间,有没有办法更快的导出呢?于是自己私下找了很多资料终于有了收获,经过测验2000多条数据最多只需1分钟,现将此方法总结出来希望可以帮助到有需要的同胞。

在说明此方法前先说下我之前的做法,从数据库中获取数据存放在Datatable中,之后循环datatable的行列给excel单元格赋值。

现在的做法是:声明一个string二维数组(因excel表格也是个二维数组因此可以直接把string数组赋值给excel选中范围),循环datatable给string数组赋值,最后把string数组赋值给excel选中范围。现贴出代码如下:

 

    int rows = 20;//数据行

            int cols = 3;//数据列


            string[,] strArr = new string[rows + 1, cols];//声明string数组

            strArr[0, 0] = "列1";//列名称
            strArr[0, 1] = "列2";//列名称
            strArr[0, 2] = "列3";//列名称          
            
            for (int i = 1; i <= rows; i++)
            {//循环数据行给string数组赋值
                strArr[i, 0] = "1-" + i.ToString();
                strArr[i, 1] = "2-"+i.ToString();
                strArr[i, 2] = "3-"+i.ToString();
              
            }


            Excel.Range c1 = ExcelxSt.get_Range(ExcelxSt.Cells[3, 1], ExcelxSt.Cells[3 + rows, cols]);
            c1.Value2 = strArr;//这里是关键,即把string数组赋值给excel,一行代码搞定

 

转载于:https://www.cnblogs.com/jianting1314/p/3672622.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值