问题
This question is quite similar to the one asked here. But the answer given suggests copying the format along with the data. I have a excel sheet (.xlsx) that I generate using SSIS. Now I have set the formatting in first row, which I want to copy to all the rows that are already filled in the worksheet. How can I do that using C#? I am using Excel interop.
回答1:
You can use PasteSpecial with 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);
回答2:
So you want to copy format from first cell and apply it to all your sheet.
There is a way to process:
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);
回答3:
I use it as mickro explained and it worked perfectly!!!!!
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);
thanks!
来源:https://stackoverflow.com/questions/18542864/copy-format-from-one-row-to-another-using-c-sharp