Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Excel.Range Copy()的工作速度非常慢_C#_Office Interop_Excel Interop - Fatal编程技术网

C# Excel.Range Copy()的工作速度非常慢

C# Excel.Range Copy()的工作速度非常慢,c#,office-interop,excel-interop,C#,Office Interop,Excel Interop,我正在生成一个报告,尝试在其中复制以下行中的前一行单元格样式 for (int i = 0; i < DataSource.Length; i++) { int rowNumber = i + s; Excel.Range RngToCopy = ObjWorkSheet.get_Range("A" + rowNumber.ToString(), "K" + rowNumber.ToString()); Excel.Range r = ObjWorkSheet.ge

我正在生成一个报告,尝试在其中复制以下行中的前一行单元格样式

for (int i = 0; i < DataSource.Length; i++)
{
    int rowNumber = i + s;
    Excel.Range RngToCopy = ObjWorkSheet.get_Range("A" + rowNumber.ToString(), "K" + rowNumber.ToString());
    Excel.Range r = ObjWorkSheet.get_Range("A" + (rowNumber + 1).ToString(), "K" + (rowNumber + 1).ToString());
    RngToCopy.Copy(Type.Missing);
    r.Insert(Excel.XlInsertShiftDirection.xlShiftDown);
    r.PasteSpecial(Excel.XlPasteType.xlPasteFormats,
                   Excel.XlPasteSpecialOperation.xlPasteSpecialOperationNone, false, false);
    ObjWorkSheet.Cells[rowNumber, 1] = i + 1;
    ObjWorkSheet.Cells[rowNumber, 2] = DataSource[i].TerminalName;
    ObjWorkSheet.Cells[rowNumber, 3] = DataSource[i].Type;
    ObjWorkSheet.Cells[rowNumber, 4] = DataSource[i].Requisite;

}
for(int i=0;i
一切正常,但时间很长
如何加快速度?

我想您可以手动复制,这样会有所改进

Object[] origData = origRange.Value2;
destRange.Value2 = origData;

这应该快得多。

定义“非常慢”。它可能只在您的机器上运行缓慢。你如何比较性能?如果我只是建立报告,他建立了2秒。如果我用完了样式-报告时间为15秒。报告中有105行。不应该这样。因此,我正在寻找一种更快的方法来复制rngtocopy.Copy(Type.Missing);我想都是因为这个方法