Как мне отформатировать строку заголовка в Google Sheets API v4 в C #? - PullRequest
0 голосов
/ 21 сентября 2018

Я хочу следующий вывод:

Но я получаю следующий результат:

Я следовал инструкциям на этот вопрос SO:

Как изменить цвет диапазона в листах Google api v4 в .net

Ноэтот код выделен жирным шрифтом во всех строках и столбцах листа.

Как решить эту проблему?Мой код:

var userEnteredFormat = new CellFormat()
{
    TextFormat = new TextFormat()
    {
        Bold = true,
        FontSize = 12
    }
};

BatchUpdateSpreadsheetRequest batchupdateCell = new BatchUpdateSpreadsheetRequest();

//create the update request for cells from the first row
var updateCellsRequest = new Request()
{
    RepeatCell = new RepeatCellRequest()
    {
        Range = new GridRange()
        {
            SheetId = sheetId,
            StartColumnIndex = 0,
            StartRowIndex = 0,
            EndColumnIndex = 28,
            EndRowIndex = 1
        },
        Cell = new CellData()
        {
            UserEnteredFormat = userEnteredFormat
        },
        Fields = "UserEnteredFormat(TextFormat)"
    }
};

batchupdateCell.Requests = new List<Request>();
batchupdateCell.Requests.Add(updateCellsRequest);
SpreadsheetsResource.BatchUpdateRequest bur = service.Spreadsheets.BatchUpdate(batchupdateCell, SheetId);
BatchUpdateSpreadsheetResponse responseUpdate3 = bur.Execute();

1 Ответ

0 голосов
/ 25 сентября 2018

Это прекрасно работает для меня, используя Google API Explorer , который должен переводить почти 1: 1 между телом JSON POST и типизированным ресурсом C # / Python / Java / ....

POST https://sheets.googleapis.com/v4/spreadsheets/YOUR_SPREADSHEET_ID_HERE:batchUpdate?
     fields=updatedSpreadsheet(sheets(data%2FrowData%2Fvalues%2FuserEnteredFormat%2Cproperties(sheetId%2Ctitle)))
{
    "requests": [
        {
            "repeatCell": {
                "range": {
                    "sheetId": YOUR_SHEET_ID_HERE,
                    "endRowIndex": 1
                },
                "fields": "userEnteredFormat/textFormat",
                "cell": {
                    "userEnteredFormat": {
                        "textFormat": {
                            "bold": true,
                            "fontSize": 12
                        }
                    }
                }
            }
        }
    ],
    "responseRanges": [
        "1:2"
    ],
    "includeSpreadsheetInResponse": true
}

Демонстрационная ссылка

GridRange в моем запросе идентифицирует только sheetId и конечный индекс, поэтому он нацелен навсе столбцы в данном листе и форматирует только первую строку.(конечный индекс 2 будет форматировать 1-ю и 2-ю строки, если только начальный индекс не задан как 1, согласно спецификации API).

Для целей проверки демонстрационная ссылка настроена на запрос отправки API Sheetsвы поддерживаете TextFormat первых 2 строк на каждом листе вместе с title и sheetId SheetProperties.Обратите внимание, что если пользовательский формат не был применен ко второй строке, данные для него отправляться не будут.

...