我使用以下代码将一个Excel行格式(模板行)复制到一系列填充数据的行,但是行数越来越慢(当前测试约有33000行作为目标范围)。
减慢整个过程的线是Range.PasteSpecial(...);
,没有线需要几秒钟,需要几分钟。
range = worksheet.Range[worksheet.Cells[9, 1], worksheet.Cells[9, 44]];
range.Copy();
range = worksheet.Range[worksheet.Cells[10, 1], worksheet.Cells[iRow + 8, 44]];
range.PasteSpecial(XlPasteType.xlPasteFormats, XlPasteSpecialOperation.xlPasteSpecialOperationNone, false, false);
excel.CutCopyMode = 0;
是否有不同的方法来检索范围格式并将其设置为另一个范围,可能更快(也在几秒钟内)?
答案 0 :(得分:0)
由于多层,Interop本质上很慢,但加速格式化操作的技巧是在尽可能大的块中进行 - 将格式复制一次,然后使用PasteSpecial将其应用到一个很大的范围细胞尽可能。