有没有一种方法可以使用C#在Excel中模拟格式画板?

时间:2018-08-10 08:29:46

标签: c# excel

我正在编写一个C#程序,以使用Microsoft.Office.Interop.Excel处理几个Excel文件(xls格式)。我需要做的是添加一个新工作表并写入一些数据,其格式类似于某些现有工作表中的数据。因此,基本上,当我们手动修改Excel文件时,我想找到一种方法来执行类似format painter的操作。我的意思是,我需要设置数字格式,背景颜色,字体,字体颜色,对齐方式等。

我试图通过在需要修改的NumberFormat中设置StyleCells属性来实现这一点。代码如下:

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现在可以了(通过此操作,我已经正确设置了日期,百分比和其他数字格式)。但是,背景颜色,字体,字体颜色等内容并没有根据需要进行更改。那我该怎么办?谢谢!

1 个答案:

答案 0 :(得分:1)

尝试使用CopyPasteSpecial方法。

  1. Copy source 单元格的所有内容。源单元格具有预期的格式。在您的代码中,它是单元格Cells[5 ,4]

  2. 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