gpt4 book ai didi

c# - 有没有办法使用 C# 在 Excel 中模仿格式刷?

转载 作者:行者123 更新时间:2023-11-30 17:29:07 27 4
gpt4 key购买 nike

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

我试图通过在我需要修改的 Cells 中同时设置 NumberFormatStyle 属性来实现这一点。代码如下所示:

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

最佳答案

尝试使用 CopyPasteSpecial 方法。

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

  2. PasteSpecial 仅将格式添加到目标 单元格。在您的代码中,它是单元格 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

关于c# - 有没有办法使用 C# 在 Excel 中模仿格式刷?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51782234/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com