C# 使用c将格式从一行复制到另一行#
这个问题与所问的问题很相似。但给出的答案建议将格式与数据一起复制。我有一个使用SSI生成的excel工作表(.xlsx)。现在,我已经在第一行设置了格式,我想将其复制到工作表中已填充的所有行。我如何使用C#实现这一点?我正在使用Excel interop。您可以使用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
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?太糟糕了,它会劫持剪贴板。这不是一个可行的解决办法。