В своем стремлении учиться я хочу сохранить ответ диапазона данных GSheet в файл для дальнейшего использования в другой программе.
Из того, что я вижу, GSheet API отвечает многомерным массивом с данными ячеек,поэтому моя первая мысль - просто использовать цикл for для записи каждой строки в текстовый файл и обратного процесса, чтобы добавлять каждую строку в новый массив при его чтении.
resp.Values имеет тип [] [] interface {} https://godoc.org/google.golang.org/api/sheets/v4#ValueRange
fmt.Println("Writing response to file:")
f, _ := os.Create("gSheetDump")
defer f.Close()
for _, row := range resp.Values {
for _, column := range row{
f.WriteString(column.(string)) //the cell data
f.WriteString(" ") //space as column delimiter
}
f.WriteString("\n") //new row of data
}
f.Sync()
Для простоты пропущены проверки ошибок и другие рекомендации.
На самом деле код работает в простых сценариях, и я получаю файл с (всего 2 столбца)со случайными числами для целей тестирования)
0.1334477383 0.9119418
0.9302617807 0.6528034118
0.2401513927 0.7896743972
0.7807423779 0.006702754729
0.5697572871 0.4395454573
0.01565383694 0.1403231739
0.3567884312 0.6965423498
Но проблемы возникают, когда вы получаете более сложные данные, когда простого пробела недостаточно для разделения столбцов.
Существует некоторый идиоматический способ достиженияжелаемый результат?