.NET 客户端中 Google 表格中的条件格式化请求

Conditional formatting requests in Google Sheets in .NET client

我知道如何对 Google 工作表 API 中的值和其他格式进行批量电子表格更新请求,但条件格式似乎有所不同。我已正确设置请求:

AddConditionalFormatRuleRequest formatRequest = new AddConditionalFormatRuleRequest
{
    Rule = new ConditionalFormatRule
    {
        Ranges = new List<GridRange>
        {
            new GridRange
            {
                // omitted
            }
        },
        BooleanRule = new BooleanRule
        {
            Condition = new BooleanCondition
            {
                // omitted
            },
            Format = new CellFormat
            {
                // omitted
            }
        },
    },
};
formatRequests.Add(formatRequest);

问题是,您实际上是如何执行的?问题是:

BatchUpdateSpreadSheetRequest updateRequest = new BatchUpdateSpreadsheetRequest 
{ 
    Requests = formatRequests  // this doesn't work
};
// resource is a SpreadsheetsResource object
SpreadsheetsResource.BatchUpdateRequest batchRequest = resource.BatchUpdate(updateRequest, spreadsheet.SpreadsheetId);

这部分不起作用,因为 BatchUpdateSpreadSheetRequest.RequestsIList<Request> 类型,但 AddConditionalFormatRuleRequest 没有继承自 Request。它只实现了 IDirectResponseActionSchema(参见 source code 第 2254 行),那么如何实际执行这些请求呢?

所以我应该使用其他一些 object/method 来执行此操作,但它在哪里?

提前致谢。

来自 .NET 背景,我真的很难理解如何使用 Google API。事情的组织(对我来说)很奇怪,.NET 组件的文档看起来一点也不像 MSDN,所以我觉得很难。无论如何,我想通了。您不单独使用 AddConditionalFormatRuleRequest class。您必须将其包装在常规 Request 对象中。

Request formatRequest = new Request
{
    AddConditionalFormatRule = new AddConditionalFormatRuleRequest
    {
        // etc
    }
};