首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

神奇的速度,C#导出到Excel,真的不是一般的慢啊解决方法

2012-04-08 
神奇的速度,C#导出到Excel,真的不是一般的慢啊。foreach(DataRowrowintable.Rows){rowIndex++colIndex0f

神奇的速度,C#导出到Excel,真的不是一般的慢啊。
foreach(DataRow   row   in   table.Rows)
{
rowIndex++;
colIndex=0;
foreach(DataColumn   col   in   table.Columns)
{
colIndex++;

//   Excel格式
range   =   excel.get_Range(excel.Cells[rowIndex,colIndex],   excel.Cells[rowIndex,colIndex]);
range.Borders.LineStyle   =   1;
range.Font.Name   =   "宋体 ";
range.Font.Size   =   10;
range.Font.Bold   =   false;
range.HorizontalAlignment   =   Excel.XlHAlign.xlHAlignCenter;
range.ColumnWidth   =   10;

excel.Cells[rowIndex,colIndex]   =   row[col.ColumnName].ToString();
}
}

[解决办法]
excel.dll是比较慢的.

response输出的excel又有格式问题.

我是定义了一个excel(列名只是排序..1-100多...应该够用吧),然后用复制+OLEDB写EXCEL的方法来导出EXCEL.扩展性可能不够好但格式没问题,速度也能接受.
[解决办法]
你把EXCEL当作数据库来添加记录会比你这样一条条加入表中快很多
[解决办法]
楼主每次循环都要设置excel的格式 这会浪费很多时间

建议你先把行数计算好 统一设置好 然后循环中只导出数据即可
或者先导出数据 最后再计算导出行数 再一次性设置格式

另外开始导出的时候 设置
ThisApplication.ScreenUpdating = false;

导出完毕记得设置成true
[解决办法]
再就是可以把调用函数设置为异步执行
ThisApplication.Visible = true;
导出数据完成再设置 这些都会提高运行速度

热点排行