我正在尝试在工作表中设置边框颜色。抛出的异常是“Google.GoogleApiException:'服务表抛出异常。HttpStatusCode 是 BadRequest。收到无效的 JSON 负载。'requests[1].update_borders.bottom.color' 处的未知名称“ETag”:找不到场。'
public IActionResult SetRange(int rowTL, int colTL, int rowBR, int colBR, List<IList<object>> values)
{
var range = $"'{SHEET_NAME}'!{ColName(colTL)}{rowTL}:{ColName(colBR)}{rowBR}";
var valueRange = new ValueRange
{
Values = values
};
Spreadsheet spr = _googleSheetsHelper.Service.Spreadsheets.Get(SPREADSHEET_ID).Execute();
Sheet sh = spr.Sheets.Where(s => s.Properties.Title == SHEET_NAME).FirstOrDefault();
int sheetId = (int)sh.Properties.SheetId;
OSColor bgColor = new OSColor("XFLightBlue3");
byte bgRed = 0;
byte bgGreen = 0;
byte bgBlue = 0;
byte alpha = 0;
bgColor.GetArgb(out alpha, out bgRed, out bgGreen, out bgBlue);
OSColor dcColor = new OSColor("WhiteSmoke");
byte dcRed = 0;
byte dcGreen = 0;
byte dcBlue = 0;
byte dcAlpha = 0;
dcColor.GetArgb(out dcAlpha, out dcRed, out dcGreen, out dcBlue);
Color dataCellBorderColor = new Color()
{
Blue = 255 - dcBlue,
Red = 255 - dcRed,
Green = 255 - dcGreen,
Alpha = 255 - dcAlpha,
};
var dataCellFormat = new CellFormat()
{
BackgroundColor = new Color()
{
Blue = 255 - bgBlue,
Red = 255 - bgRed,
Green = 255 - bgGreen,
Alpha = 255 - alpha
},
TextFormat = new TextFormat()
{
Bold = true,
FontFamily = "Courier New",
FontSize = 12
}
};
var updateCellsRequest = new Request()
{
RepeatCell = new RepeatCellRequest()
{
Range = new GridRange()
{
SheetId = sheetId,
StartColumnIndex = colTL,
StartRowIndex = rowTL,
EndColumnIndex = colBR,
EndRowIndex = rowBR
},
Cell = new CellData()
{
UserEnteredFormat = dataCellFormat
},
Fields = "UserEnteredFormat(BackgroundColor,TextFormat,Borders)"
}
};
var updateBorderssRequest = new Request()
{
UpdateBorders = new UpdateBordersRequest()
{
Range = new GridRange()
{
SheetId = sheetId,
StartColumnIndex = colTL,
StartRowIndex = rowTL,
EndColumnIndex = colBR,
EndRowIndex = rowBR
},
Bottom = new Border()
{
Color = dataCellBorderColor
}
}
};
BatchUpdateSpreadsheetRequest bussr = new BatchUpdateSpreadsheetRequest();
var updateRequest = _googleSheetValues.Update(valueRange, SPREADSHEET_ID, range);
updateRequest.ValueInputOption = UpdateRequest.ValueInputOptionEnum.USERENTERED;
updateRequest.Execute();
bussr.Requests = new List<Request>();
bussr.Requests.Add(updateCellsRequest);
bussr.Requests.Add(updateBorderssRequest);
_googleSheetsHelper.Service.Spreadsheets.BatchUpdate(bussr, SPREADSHEET_ID).Execute(); // <-- Exception thrown here
Console.WriteLine("Update Requested");
return NoContent();
}
到处寻找解决方案。