@幻天芒: AddRange我知道怎么用了,但是相对于下面我的方法还是慢了,有多少Row都要去请求一下.
谢谢大家,问题我已经解决了,我之前是Sheet.Celss[top,row]=string;这样来写数据的,因为方便做这边比较纠结的逻辑运算.
之后我将逻辑和写入分离了,还是发现很慢,然后去查,说是用Sheet.Celss[top,row]这种方法每次都要请求一次链接,然后才能写入数据
所以我修改成先得到要写入的DataTable,然后转换成string[,]数组.
再得到Excel.Range.get_Range("A2",missing.value),(这里A2的意思是从A列的第2行起的Range对象)
通过设置Range.get_Resize(RowsSize,ColumnSize)(就是你DataTable数据有多少行和多少列,在Excel.Range对象中得到从A2开始的,这么大的区域.)
最后Excel.Range.Value=objDate;(将你DataTable转换出来的数组,直接一次写入你之前得到的Range区域里里面)
速度灰一样的快.大家可以试试.