有没有一种方法可以使用C#模拟Excel中的格式绘制程序?

有没有一种方法可以使用C#模拟Excel中的格式绘制程序?,c#,excel,C#,Excel,我正在编写一个C程序,用Microsoft.Office.Interop.Excel操作几个Excel文件(xls格式)。我需要做的是添加一个新的工作表并写入一些数据,其格式与一些现有工作表中的数据相似。因此,基本上我想找到一种方法,在手动修改Excel文件时执行类似于format painter的操作。我的意思是,我需要设置数字格式、背景色、字体、字体颜色、对齐方式等等 我试图通过在需要修改的单元格中设置NumberFormat和Style属性来实现这一点。代码如下所示: newSheet.C

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

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

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
现在已经正常了(通过这样做,我已经正确设置了日期、百分比和其他数字格式)。但是背景色,字体,字体颜色的东西并没有得到改变。那我该怎么办呢?谢谢大家!

尝试使用新的方法

  • 复制源单元格的所有内容。源单元格具有预期的格式。在您的代码中,它是单元格
    单元格[5,4]

  • PasteSpecial
    仅将格式粘贴到目标单元格。在您的代码中,它是单元格
    单元格[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
    

    非常感谢。那正是我要找的!