这个问题与这里提出的问题非常相似。但是给出的答案建议将格式与数据一起复制。 我有一个使用SSIS生成的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);
PasteSpecial
中,对于缺失的参数需要提供System.Type.Missing
。 - Andy GPasteSpecial()
而不带任何参数就可以很好地工作。那你的意思是什么? - mickro我按照mickro的解释使用它,它完美地工作了!!!
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);
谢谢!