C #Excel Interop当Range长度为>时无法获取Characters.Text属性。 256

时间:2015-06-09 18:59:37

标签: c# excel interop

我尝试使用C#Excel互操作库在Excel工作表中加粗特定字符。我在花括号{}中有特定的字符,并使用此函数使它们变粗。

void FormatCharacters(Range r)
{
    Characters chars = r.Characters[0, r.Text.Length];
    if (chars.Text.Contains("{") && chars.Text.Contains("}"))
    {
        int startIndex = chars.Text.IndexOf("{");
        int len = chars.Text.IndexOf("}") - startIndex + 1;
        Characters bold = r.Characters[startIndex, len];
        bold.Font.Bold = true;
        bold.Text = bold.Text.Replace("{", "");
        bold.Text = bold.Text.Replace("}", "");
    }
    else
        return;
    FormatCharacters(r);
}

如果单元格的文本少于256个字符,则该函数可以正常工作。当单元格的文本大于256时,我会得到以下异常:

System.Runtime.InteropServices.COMException

Message =无法获取Characters类的Text属性

错误码= -2146827284

如何在Excel Characters界面中克服这256个字符的限制?

使用互操作的任何替代方法?

0 个答案:

没有答案