大块数据填充Excel快速算法 ListView中存放了大约1000条记录,每条记录有50多个字段,若用for循环将数据搬移到excel中速度异常缓慢,有没有快速算法?请高手指导~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 只是产生文件的方式有些讲究,你是生成csv还是调用Excel对象来生成Excel?? 用数组,或DataTable填充,速度贼快 哦?请教这为仁兄,是先将ListView的内容存入数组然后再填充Excel么?用DataTable如何实现呢? 使用多个单元格写入的速度远快于对单元格进行逐个写入,因此是提高生成Excel速度的一个重要途径。示例代码Excel.Application xApp = new Excel.ApplicationClass();string[,] strs = new string[9, 9];for(int i = 0; i < 9; i++) for(int j = 0; j < 9; j++) strs[i, j] = Convert.ToString((i + 1) * (j + 1));Excel.Workbook xBook = xApp.Workbooks.Add(Missing.Value);Excel.Worksheet xSheet = (Excel.Worksheet)xBook.Worksheets[1];xSheet.get_Range(xSheet.Cells[1, 1], xSheet.Cells[9, 9]).Value = strs; 同意楼上的,如同List.AddRange()比循环用List.Add()速度快 不过有个问题,listview中的内容不是固定的,如何确定string[,]的大小呢?或者是否可以将string[,]做为缓冲,开两个线程,一个填充string[,],另一个向excel写数据。但这样填充缓冲的速度会不会仍然制约向excel写数据的速度? 先把数据填充到一个二维数组再将二维数组填充到RANGE用种方法导入过5万行数据只用了10秒 Ok,从listview向string[,]写数据速度异常的快,再range到excel中几乎不费什么时间。这个很奇怪哦,为何向数组搬移数据速度会这么迅速?向excel写数据时后台做了很多工作么? 将帖子结了吧,谢谢同学们的解答,我已将一些信息放在我的blog中:http://www.cnweblog.com/mikron这里还有一些我的工程介绍,可以供大家参考 nhibernate 1.2 版本升级为2.1问题 C# TextBox格式化问题(WinFrom) 使用.Net访问Office编程接口 资料寻找 c#里一个窗口调用另一个窗口的问题 数值按一定比例缩小算法问题! 用C#怎么获取一个dll文件中的命名空间 动态打form ------急,数据库连接问题,如何写相对路径??????? 各位指点一下这个程序,我用栈的操作方式想输入多个字符,可是他只能输入一个字符。 各位老大,帮我这个新手看下这段代码是怎么回事,总是报报INSERT INTO 语句的语法错误 字符长度太长,怎么截取啊 导出EXCEL的怪问题
string[,] strs = new string[9, 9];
for(int i = 0; i < 9; i++)
for(int j = 0; j < 9; j++)
strs[i, j] = Convert.ToString((i + 1) * (j + 1));Excel.Workbook xBook = xApp.Workbooks.Add(Missing.Value);
Excel.Worksheet xSheet = (Excel.Worksheet)xBook.Worksheets[1];
xSheet.get_Range(xSheet.Cells[1, 1], xSheet.Cells[9, 9]).Value = strs;
如同List.AddRange()比循环用List.Add()速度快
或者是否可以将string[,]做为缓冲,开两个线程,一个填充string[,],另一个向excel写数据。但这样填充缓冲的速度会不会仍然制约向excel写数据的速度?
再将二维数组填充到RANGE
用种方法导入过5万行数据
只用了10秒
这个很奇怪哦,为何向数组搬移数据速度会这么迅速?向excel写数据时后台做了很多工作么?
这里还有一些我的工程介绍,可以供大家参考