来自 AddConditionalFormatRule 的错误

Error from AddConditionalFormatRule

我正在尝试将条件格式应用于我使用表格 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 行。

有谁知道导致此异常的原因,也许可以就解决方案分享一些建议?

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