首页 > 解决方案 > .NET 客户端中 Google 表格中的条件格式请求

问题描述

我知道如何在 Google Sheets 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.Requests它是 type IList<Request>,但AddConditionalFormatRuleRequest不继承自Request. 它只实现IDirectResponseActionSchema(参见源代码第 2254 行),那么如何实际执行这些请求?

因此,我应该使用其他一些对象/方法来执行此操作,但它在哪里?

提前致谢。

标签: c#google-sheets-apigoogle-api-dotnet-clientgs-conditional-formatting

解决方案


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

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

推荐阅读