C# 使用c将excel范围插入为行和复制格式的更好方法#

C# 使用c将excel范围插入为行和复制格式的更好方法#,c#,winforms,excel,com,C#,Winforms,Excel,Com,在写入数据之前,我必须多次插入包含许多合并单元格、样式和数字格式的区域行。 当我插入一行时,它不会复制混合的单元格、样式或数字格式等。 因此,我选择range作为行并插入相同的行,然后将上一行复制到新插入的行。 这个过程花费了越来越多的时间,因为我已经做了很多次了。 我就是这样做的 Range rangeToInsert = Worksheet1.get_Range("a" + Convert.ToString(20), "z" + Convert.ToString(20)); Range ra

在写入数据之前,我必须多次插入包含许多合并单元格、样式和数字格式的区域行。 当我插入一行时,它不会复制混合的单元格、样式或数字格式等。 因此,我选择range作为行并插入相同的行,然后将上一行复制到新插入的行。 这个过程花费了越来越多的时间,因为我已经做了很多次了。 我就是这样做的

Range rangeToInsert = Worksheet1.get_Range("a" + Convert.ToString(20), "z" + Convert.ToString(20));
Range rangeToInsertRow= rangeToInsert.EntireRow;

rangeToInsertRow.Insert(app.XlInsertShiftDirection.xlShiftDown, false);
Range InsertedRowRange= Worksheet1.get_Range("a" + Convert.ToString(newrowNum), "z" + Convert.ToString(newrowNum));
rangeToInsert.copy(InsertedRowRange);
请建议是否对我的代码进行任何优化,以更快地执行行插入/复制样式。

也许可以这样尝试

Range rngToCopy = ws.get_Range("A" + 20, "Z" + 20);
rngToCopy.Copy();
rngToCopy.Offset[1, 0].Insert(XlInsertShiftDirection.xlShiftDown, XlInsertFormatOrigin.xlFormatFromLeftOrAbove);
您还可以(在对单元格进行任何操作之前)将整个复制粘贴片段用

和(修改单元格后)


嗨@Ram你对提供的答案满意吗?我能做些什么来改进它从而解决您的问题吗?
xlApp.ScreenUpdating = false;
xlApp.ScreenUpdating = true;