首页 > 解决方案 > excel interop c#:更改行颜色

问题描述

我正在尝试在 B4 到 F500 之间的范围内更改 Row mod 2 = 0 中的颜色,它是一个值列表。我想替换整行的背景颜色。

我正在执行这个:

Range c1 = worksheet.Range["B4"];
Range c2 = (Range) worksheet.Range[F500];

Range range = worksheet.get_Range(c1, c2);
range.Value = arr;

var formatCell = (FormatCondition)range.Rows.FormatConditions.Add(XlFormatConditionType.xlExpression, XlFormatConditionOperator.xlEqual, "=MOD(ROW(),2) = 0");
formatCell.Interior.Color =  Color.FromArgb(243, 243, 243);

直到value = arr代码可以正常工作,但是当我想更改颜色时,它给了我这个错误:

在此处输入图像描述

参数不正确

怎么了?

请你帮助我好吗?

我不想循环,因为它太慢了

我正在使用 c# 和 Excel 365。

标签: c#excelinterop

解决方案


我得到了解决方案:

Workbook wkb = GetApp().Workbooks.Open(excelLocation);
wkb.ExportAsFixedFormat(XlFixedFormatType.xlTypePDF, outputLocation);

wkb.Close();
GetApp().Quit();

问题是ExportAsFixedFormat不被认为是指令。我与图书馆发生冲突,我决定全部删除。

仅适用于 Microsoft.Office.Interop.Excel;

之后我必须安装 Microsoft.CSSharp 作为互操作的要求。

现在它正在工作


推荐阅读