我正在编写一个C#程序,以使用Microsoft.Office.Interop.Excel
处理几个Excel文件(xls格式)。我需要做的是添加一个新工作表并写入一些数据,其格式类似于某些现有工作表中的数据。因此,基本上,当我们手动修改Excel文件时,我想找到一种方法来执行类似format painter
的操作。我的意思是,我需要设置数字格式,背景颜色,字体,字体颜色,对齐方式等。
我试图通过在需要修改的NumberFormat
中设置Style
和Cells
属性来实现这一点。代码如下:
newSheet.Cells[6, 3].Value2 = 10;
newSheet.Cells[6, 3].NumberFormat = existingSheet.Cells[5, 4].NumberFormat;
newSheet.Cells[6, 3].Style = existingSheet.Cells[5, 4].Style;
据我所知,NumberFormat
现在可以了(通过此操作,我已经正确设置了日期,百分比和其他数字格式)。但是,背景颜色,字体,字体颜色等内容并没有根据需要进行更改。那我该怎么办?谢谢!
答案 0 :(得分:1)
尝试使用Copy和PasteSpecial方法。
Copy
source 单元格的所有内容。源单元格具有预期的格式。在您的代码中,它是单元格Cells[5 ,4]
PasteSpecial
仅用于 target 单元格的格式。在您的代码中,它是单元格Cells[6, 3]
示例:
Microsoft.Office.Interop.Excel.Range source = existingSheet.Cells[5, 4];
source.Copy(); // Copy everything from the source cell to the clipboard
Microsoft.Office.Interop.Excel.Range target = newSheet.Cells[6, 3];
target.Value = 456; // Write value to the target cell and ...
target.PasteSpecial(XlPasteType.xlPasteFormats); // Paste only formats from the source cell