datatable 倒入excel

大家好,我有个datatable dt,列20,行2000,用如下方法倒入excel,用时20分钟,可有更好点的方法
Excel.Application excel = new Excel.Application ( ) ;
excel.Application.Workbooks.Add ( true ) ;
for(int n =0;n<dt.Columns.Count;n++)
{
   excel.Cells[1,n+1] = dt.Columns[n].ColumnName;
}
for(int i=0;i<dt.Rows.Count;i++)
{
for(int j=0;j<dt.Columns.Count;j++)
{
excel.Cells[i+2,j+1] = dt.Rows[i][j].ToString();
}
}
Excel.Range r1 = excel.get_Range(excel.Cells[1,1],excel.Cells[dt.Rows.Count+1,dt.Columns.Count]);
r1.EntireColumn.AutoFit();
r1.EntireRow.AutoFit();
r1.HorizontalAlignment = Excel.XlHAlign.xlHAlignLeft;
r1.VerticalAlignment   = Excel.XlVAlign.xlVAlignCenter;
excel.Visible = true ;

楼主打开
Excel.Application excel = new Excel.Application ( ) ;
excel.Application.Workbooks.Add ( true ) ;
//打开excel后让其不可见,特别是设置ScreenUpdating为false避免每次写单元格刷屏

excel.Visible = false;
excel.ScreenUpdating = false;

//...楼主中间写数据等

//最后可见,并刷新屏幕
excel.Visible = true;
excel.ScreenUpdating = true

//

///

用ado.net应该比com快
http://support.microsoft.com/default.aspx?scid=kb;zh-cn;306023#

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值