我想要以下输出:
但是我收到以下结果:
我遵循了有关此SO问题的说明:
How to Change color of range in google sheets api v4 in .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();
答案 0 :(得分:0)
使用Google APIs Explorer对我来说效果很好,它应该在JSON POST正文和C#/ Python / Java / ...类型的资源之间转换几乎1:1。
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
和结尾索引,因此它以给定工作表中的所有列为目标,并且仅格式化第一行。 (根据API规范,除非起始索引为1,否则终止索引2将格式化第一行和第二行)。
出于验证目的,演示链接被配置为请求Sheets API向您发送回每个工作表的前两行的TextFormat
,以及title
和sheetId
SheetProperties
。请注意,如果第二行未应用任何用户格式,则不会发送任何数据。