Получение 'Undefined: sheet.DeleteSheet' при попытке выполнить запрос BatchUpdate для электронных таблиц - PullRequest
0 голосов
/ 01 октября 2018

Я не совсем понимаю, как работает API Google листов для Go.

Что я хочу сделать, это удалить лист в месте 0 из электронной таблицы.Вот фрагмент кода для запроса, который сейчас не работает.

    rb2 := &sheets.BatchUpdateSpreadsheetRequest{
            Requests: requests,
    }

    resp2, err := srv.Spreadsheets.BatchUpdate(destinationSpreadsheetId, rb3).Do()

Я подумал, что мне нужно создать request перед созданием тела запроса в строке 1 выше.

    ds := &sheets.DeleteSheetRequest{
            SheetId: int64(0),
    }
    deleteSheet := &sheets.DeleteSheet{
        DeleteSheetRequest: ds,
    }    
    requests := []*sheets.Request{
        DeleteSheet: deleteSheet,
    }

Если я попытаюсь собрать его, компилятор выдаст ошибку,

sheets\sheets.go:118:19: undefined: sheets.DeleteSheet
sheets\sheets.go:123:4: undefined: DeleteSheet

Я пытался следовать руководству по листам, https://godoc.org/google.golang.org/api/sheets/v4#BatchUpdateSpreadsheetRequest

1 Ответ

0 голосов
/ 02 октября 2018

Исправление:

    deleteSheetRequest := &sheets.DeleteSheetRequest{
        SheetId: 0,
    }

    requests := []*sheets.Request{
        {DeleteSheet: deleteSheetRequest},
    }

    rb3 := &sheets.BatchUpdateSpreadsheetRequest{
            Requests: requests,

            // TODO: Add desired fields of the request body.
    }

    resp2, err := srv.Spreadsheets.BatchUpdate(destinationSpreadsheetId, rb3).Do()
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(resp2)

@ tehhowch, спасибо за помощь.Я исправил это, а затем, после просмотра кода, понял, что в [] * sheet.Request отсутствуют скобки массива.Duh.

...