Как переименовать лист с помощью Google Sheets Api v4? - PullRequest
0 голосов
/ 04 мая 2020

У меня есть код, цель которого состоит в том, чтобы переименовать лист спецификации c, но при выполнении BatchUpdate и кода происходит ли у кого-нибудь какие-либо идеи?

        public void UpdateSheetName(string sheetName,string newSheetName)
    {
        //get sheet id by sheet name
        Spreadsheet spr = service.Spreadsheets.Get(SpreadsheetId).Execute();
        Sheet sh = spr.Sheets.Where(s => s.Properties.Title == sheetName).FirstOrDefault();
        int sheetId = (int)sh.Properties.SheetId;
        BatchUpdateSpreadsheetRequest bussr = new BatchUpdateSpreadsheetRequest();

        var request = new Request()
        {
              UpdateSpreadsheetProperties= new UpdateSpreadsheetPropertiesRequest(){
                   Properties=new SpreadsheetProperties()
                   {                      
                       Title= newSheetName,

                   },
                  Fields ="title"
               }

        };

        bussr.Requests = new List<Request>();
        bussr.Requests.Add(request);
        var bur = service.Spreadsheets.BatchUpdate(bussr, SpreadsheetId);
        bur.Execute();
    }

Сообщение об ошибке: Неверно значение в 'request [0]' (oneof), одно из поля 'kind' уже установлено. Невозможно установить updateSpreadsheetProperties [400]

1 Ответ

1 голос
/ 07 мая 2020

Я обнаружил проблему, проблема была в том, что я использовал неправильный класс, используя UpdateSpreadsheetProperties вместо UpdateSheetPropertiesRequest

        var request = new Request()
        {
            UpdateSheetProperties =new UpdateSheetPropertiesRequest {
            Properties=new SheetProperties()
            {
                Title=newName,
                SheetId=sheetId

            },
                Fields = "Title"
            }


        };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...