Excel VSTO C# - 格式化雷达图表类别和轴标签

时间:2015-09-04 11:26:18

标签: c# .net excel visual-studio vsto

我正在尝试更改雷达图表轴和类别标签上的文本格式,我的代码适用于轴字体大小并提供所需的输出,但是一旦代码运行在我的代码上,我也会收到错误第ax.Format.TextFrame2.TextRange.Font.Size = 7;

调试错误:

  

mscorlib.dll中发生了'System.Runtime.InteropServices.COMException'类型的异常,但未在用户代码中处理。   附加信息:未指定的错误(来自HRESULT的异常:0x80004005(E_FAIL))

一旦操作完成,如何更改类别标签以及可能导致错误的原因?

以下是代码:

public static void FormatRadarLabels(Excel._Application xlApp)
{
    Excel.Chart chart = null;
    xlApp.ScreenUpdating = false;

    try {

        chart = xlApp.ActiveChart as Excel.Chart;

        foreach (Excel.Axis ax in chart.Axes()) {
            ax.Format.TextFrame2.TextRange.Font.Size = 7;
        }
    }
    finally {
        if (chart != null) Marshal.ReleaseComObject(chart);
        xlApp.ScreenUpdating = true;
    }

}

该方法由另一个类中的方法调用,该方法由excel工具栏上的按钮调用,但我不认为错误与外部任何问题有任何问题,就像我评论或删除这段代码剩下的格式化工作正常。

感谢您提供的任何帮助或建议。请记住,我对C#,VSTO和Visual Studio相对较新(6个月的经验),所以可能无法理解所有技术术语。如果需要,我也很乐意提供进一步的信息。 :)

1 个答案:

答案 0 :(得分:0)

什么属性正好引发异常?

  

ax.Format.TextFrame2.TextRange.Font.Size = 7;

我建议从打破属性和方法调用链并在不同的行上声明它们开始。因此,您将找到准确触发异常的属性或方法。