如何以编程方式在C#Excel vsto中为单元格添加彩色边框?

时间:2013-02-20 09:06:49

标签: c# excel vsto

如何在C#Excel VSTO中为单元格添加彩色边框?

我通过以下链接找到了API,并且有关于添加边框的一些描述,但不是非常具体。奇怪的是VS2010无法识别BorderAround()方法。它似乎只承认BorderAround2(),但抱怨我把int的参数。

下面是我尝试的代码,但VS抱怨无效的参数。

range.BorderAround2(Excel.XlLineStyle.xlDash, Type.Missing, Type.Missing, System.Drawing.Color.Red, Type.Missing);

http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.range.borderaround(v=office.14).aspx

3 个答案:

答案 0 :(得分:2)

使用Borders.Color对象的Bordes.LineStyleRange属性。

这是来自VSTO应用程序级插件的片段。

using Excel = Microsoft.Office.Interop.Excel;

Excel.Range pRange = Globals.ThisAddIn.Application.ActiveCell;

pRange.Borders.Color = 0x0000FF; // an RGB value in hex
pRange.Borders.LineStyle = Excel.XlLineStyle.xlContinuous;

请注意,Borders.Color属性使用提供的RGB值的倒数作为颜色。

或者,您可以使用ColorIndex属性,但颜色范围有限。有关详细信息,请参阅this

答案 1 :(得分:2)

我自己的方法类似于idssl建议的方法,但使用ColorTranslator.ToOle方法。

range.Borders.LineStyle = Excel.XlLineStyle.xlDot;
range.Borders.Color = ColorTranslator.ToOle(Color.Red);

这对我也有用。

答案 2 :(得分:0)

你应该看到

http://www.aspose.com/docs/display/cellsnet/Add+Borders+to+Cells+in+a+Worksheet

//Set the borders with hair lines style.
_range.SetOutlineBorders( CellBorderType.Hair, Color.Black);