使用公式的Excel互操作条件格式

时间:2014-02-28 00:06:19

标签: c# visual-studio-2010 excel-interop

我有两个方案,我正在开发两台PC,一台使用Visual Studio 2010,Office 2010,PIA 2010和另一台装有Visual Studio 2010,Office 2007,PIA 2007的PC。 相同的应用程序有不同的行为,第一个工作正常,第二个不起作用。

我需要在电子表格中设置条件格式,但是使用Office 2007它不起作用,因为Excel中的公式是复制为字符串而不是公式。 办公室版本的代码如下:

Excel.Range cellToSet = worksheet.get_Range(startCell, endCell);
Excel.FormatConditions fcs = cellToSet.FormatConditions;
Excel.FormatCondition fc = (Excel.FormatCondition)fcs.Add(Excel.XlFormatConditionType.xlExpression, Type.Missing, "H4>=M4");
string str = fc.Formula1;
Excel.Interior interior = fc.Interior;
interior.Color = ColorTranslator.ToOle(backgroundColor);

变量str用于在Add调用后检查公式内容,str返回以下内容:“= \”H4> = M4 \“”,工作表无法正常工作。 打开excel文件,在菜单条件格式/管理规则/显示格式规则下,我看到: 公式:=“H4> = M4” 而不是 公式:= H4> = M4 (没有字符“)

在带有Office 2010的PC中,str变量返回“= H4> = M4”(没有字符“),生成的文件正常工作。

为什么在2007年这个代码不起作用?

1 个答案:

答案 0 :(得分:0)

尝试使用此article中所述的绝对Cell引用。所以而不是:

 "H4>=M4" try "$H$4>=$M$4$".