【问题标题】:Error from AddConditionalFormatRule来自 AddConditionalFormatRule 的错误
【发布时间】:2016-06-29 05:13:46
【问题描述】:

我正在尝试将条件格式应用于我使用 Sheets API 创建的电子表格。但是,我的代码中有一部分总是会导致异常。

具体来说,异常信息是:

Google.GoogleApiException was unhandled
  HResult=-2146233088
  Message=Google.Apis.Requests.RequestError
The service is currently unavailable. [503]
Errors [
        Message[The service is currently unavailable.] Location[ - ] Reason[backendError] Domain[global]
]

这是与异常相关的代码部分:

Request request4 = new Request();
request4.AddConditionalFormatRule = new AddConditionalFormatRuleRequest();
request4.AddConditionalFormatRule.Rule = new ConditionalFormatRule();
GridRange range1 = new GridRange();
range1.SheetId = 0;
range1.StartColumnIndex = 8;
range1.EndColumnIndex = 9;
range1.StartRowIndex = 1;
request4.AddConditionalFormatRule.Rule.Ranges = new List<GridRange>();
request4.AddConditionalFormatRule.Rule.Ranges.Add(range1);
request4.AddConditionalFormatRule.Rule.GradientRule = new GradientRule();
request4.AddConditionalFormatRule.Rule.GradientRule.Minpoint = new InterpolationPoint();
request4.AddConditionalFormatRule.Rule.GradientRule.Minpoint.Type = "MIN";
request4.AddConditionalFormatRule.Rule.GradientRule.Minpoint.Color = new Google.Apis.Sheets.v4.Data.Color();
request4.AddConditionalFormatRule.Rule.GradientRule.Minpoint.Color.Red = 1;
request4.AddConditionalFormatRule.Rule.GradientRule.Minpoint.Color.Green = (float)0.48;
request4.AddConditionalFormatRule.Rule.GradientRule.Minpoint.Color.Blue = (float)0.48;
request4.AddConditionalFormatRule.Rule.GradientRule.Midpoint = new InterpolationPoint();
request4.AddConditionalFormatRule.Rule.GradientRule.Midpoint.Type = "NUMBER";
request4.AddConditionalFormatRule.Rule.GradientRule.Midpoint.Value = "0.5";
request4.AddConditionalFormatRule.Rule.GradientRule.Midpoint.Color = new Google.Apis.Sheets.v4.Data.Color();
request4.AddConditionalFormatRule.Rule.GradientRule.Midpoint.Color.Red = 1;
request4.AddConditionalFormatRule.Rule.GradientRule.Midpoint.Color.Green = 1;
request4.AddConditionalFormatRule.Rule.GradientRule.Midpoint.Color.Blue = 0;
request4.AddConditionalFormatRule.Rule.GradientRule.Maxpoint = new InterpolationPoint();
request4.AddConditionalFormatRule.Rule.GradientRule.Maxpoint.Type = "MAX";
request4.AddConditionalFormatRule.Rule.GradientRule.Maxpoint.Color = new Google.Apis.Sheets.v4.Data.Color();
request4.AddConditionalFormatRule.Rule.GradientRule.Maxpoint.Color.Red = (float)0.82;
request4.AddConditionalFormatRule.Rule.GradientRule.Maxpoint.Color.Green = 1;
request4.AddConditionalFormatRule.Rule.GradientRule.Maxpoint.Color.Blue = (float)0.87;
request4.AddConditionalFormatRule.Index = 0;
requests.Add(request4);

正如您可能假设的那样,这是我作为BatchUpdateSpreadsheetRequest 一起发送的许多请求对象的一部分。如果我注释掉这部分有问题的代码,那么其他一切都可以正常工作。

电子表格数据是动态生成的,但始终包含 14 列和 4000 到 5000 行。

有谁知道是什么导致了这个异常,也许可以分享一些关于解决方案的建议?

【问题讨论】:

    标签: c# google-sheets-api


    【解决方案1】:

    这似乎是使用 InterpolationPointType 的 MIN 和 MAX 的问题。该文档说不需要“值”(实际上不应该需要该值),但是服务器现在在需要它的地方有一个错误。我已经确定了问题,并会在推出修复程序时在此处发布。作为目前的解决方法,请使用虚拟值,例如, request4.AddConditionalFormatRule.Rule.GradientRule.Minpoint.Value = "1",maxpoint 也一样。

    【讨论】:

    • 感谢您的建议。是的,这个解决方案已经奏效了。
    • 我想知道您是否碰巧知道如何在 Google Sheets Apps 脚本中解决这个枚举问题 stackoverflow.com/q/48655476/470749 谢谢!
    • 抱歉,我忘记在此处发布更新 - 我们已于 2016 年 6 月在服务器端修复了此问题,因此您不再需要解决此问题。
    猜你喜欢
    • 2013-06-02
    • 1970-01-01
    • 2010-09-08
    • 1970-01-01
    • 2012-05-04
    • 2018-05-08
    • 2020-12-13
    • 2013-01-02
    • 2016-07-13
    相关资源
    最近更新 更多