大块数据填充Excel快速算法
ListView中存放了大约1000条记录,每条记录有50多个字段,若用for循环将数据搬移到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()速度快
先把数据填充到一个二维数组
再将二维数组填充到RANGE
用种方法导入过5万行数据
只用了10秒
用数组,或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()速度快
先把数据填充到一个二维数组
再将二维数组填充到RANGE
用种方法导入过5万行数据
只用了10秒