C# 使用c将格式从一行复制到另一行#

C# 使用c将格式从一行复制到另一行#,c#,excel,ssis,formatting,excel-interop,C#,Excel,Ssis,Formatting,Excel Interop,这个问题与所问的问题很相似。但给出的答案建议将格式与数据一起复制。我有一个使用SSI生成的excel工作表(.xlsx)。现在,我已经在第一行设置了格式,我想将其复制到工作表中已填充的所有行。我如何使用C#实现这一点?我正在使用Excel interop。您可以使用xlPasteFormats Excel.Range R1 = (Excel.Range)oSheet.Cells[11, 11]; R1.Copy(Type.Missing); Excel.Range R2 = (Excel.Ra

这个问题与所问的问题很相似。但给出的答案建议将格式与数据一起复制。我有一个使用SSI生成的excel工作表(.xlsx)。现在,我已经在第一行设置了格式,我想将其复制到工作表中已填充的所有行。我如何使用C#实现这一点?我正在使用Excel interop。

您可以使用
xlPasteFormats

Excel.Range R1 = (Excel.Range)oSheet.Cells[11, 11];
R1.Copy(Type.Missing);

Excel.Range R2 = (Excel.Range)oSheet.Cells[15, 15];
R2.PasteSpecial(Excel.XlPasteType.xlPasteFormats,
    Excel.XlPasteSpecialOperation.xlPasteSpecialOperationNone, false, false);
所以,您希望从第一个单元格复制格式,并将其应用于所有工作表

有一种方法可以处理:

 Range sourceRange = sheet.get_Range("A1:A1");
 sourceRange.Copy();

 Range last = sheet.Cells.SpecialCells(XlCellType.xlCellTypeLastCell, Type.Missing);
 Range destinationRange = sheet.get_Range("A1", last);

 destinationRange.PasteSpecial(XlPasteType.xlPasteFormats);

我用它作为米克罗解释,它的工作非常完美

                Range contentAlarms =exlWsheetAlarms.get_Range("A1:G"+countList);
                contentAlarms.Copy(Type.Missing);

                Range last = exlWsheetUlt.Cells.SpecialCells(XlCellType.xlCellTypeLastCell, Type.Missing);
                Range destinationRange = exlWsheetUlt.get_Range("B90", last);

                destinationRange.PasteSpecial(XlPasteType.xlPasteFormats);

谢谢

显示用于格式化第一行的代码,也许它可以应用于其他行。我正在手动设置模板文件第一行的格式。新行已添加到此模板文件,需要将格式应用于这些行。
System.Type.Missing
需要为
PasteSpecial
的缺少参数提供缺少的参数。运行
PasteSpecial()
时不带任何参数运行效果很好。你什么意思?我错了,对不起!我错误地回忆起C#在使用互操作时要求提供所有参数。从C#2010(引入了可选参数)开始,这个要求就不再必要了。如果我想复制那一行中单元格的值呢?那么你是在从contentAlarms复制到last?太糟糕了,它会劫持剪贴板。这不是一个可行的解决办法。