收到无效的 JSON 负载。 'requests[1].update_borders.bottom.color' 处的未知名称“ETag”:

问题描述 投票:0回答:0

我正在尝试在工作表中设置边框颜色。抛出的异常是“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();
        }

到处寻找解决方案。

c# google-sheets google-sheets-api google-api-dotnet-client
© www.soinside.com 2019 - 2024. All rights reserved.