神奇的速度,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;
导出数据完成再设置 这些都会提高运行速度