在上位机软件设计及实际应用过程中,常常需要对一些重要的数据进行excel存储,单次导出还好,耗费不了太多时间,如果是实时进行存储的话,设计不当, 可能会比较占用资源,导致上位机运行比较卡顿。如果数据量比较大,也可能会出现定时存储的excel数据与期望的存储周期不匹配的现象。
常用的方法是:
1.创建excel application、book以及sheet;
2.对sheet的cell进行赋值,如下:
sheet.Cells[i, j] = xxxxxxx;
sheet.SaveAs(“XXXXXX”);
如果是在线程或定时器中定期存储大量数据的话,使用这种方法往往得不到期望的存储周期。
另一种方法是使用excel range以及数组的方法:
1.创建excel range(Microsoft.Office.Interop.Excel.Range range);
2.创建二维数组
string[,] write_data = new string[1, 100];
3.在线程或定时器中,对数组进行赋值,替换之前直接对sheet的cell进行赋值:
write_data[i, j] = xxxxxxx;
4.将range关联到sheet:
range = sheet.Range[sheet.Cells[1, 1], sheet.Cells[1, 100]];
意思是将sheet从1行1列到1行100列中间的单元格,定义为range。
这里的1和100可以是变量。
5.将数组赋值到range:
range.Value = write_data。
这样就避免了存储过程中对每个单独的cell进行赋值,大大提高了存储的速度。
注:【后续增加测试源码】
————————————————
原文链接:https://blog.csdn.net/xinjitmzy/article/details/100516336