Новости:

Интересные и полезные статьи по работе с Excel и VBA
можно найти в разделе ХИТРОСТИ

Главное меню

Как делать бекапы гугл таблицы?

Автор telegt, 10.03.2017, 08:42:38

« назад - далее »

telegt

Ситуация такая: У нас есть гугл таблица, которая периодически заполняется.
Таблица важная.
Чтобы она не потерялась можно ли как-то настроить авто-бекапы? Если да то как сделать и куда будет бекапится?
Подскажите пожалуйста :)

Дмитрий Щербаков(The_Prist)

По сути это делается исключительно скриптами. Другого способа не нашел. Идете в Инструменты -Редактор скриптов. Вписываете функцию:
function SaveCopyOnTime() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var dt = new Date().toString();
  ss.copy(dt + ss.getSheetName())
}

В редакторе скриптов нажимаете на иконку секундомера(Триггеры текущего проекта). Будет надпись: Триггеры не настроены. Нажмите здесь, чтобы добавить триггер. Нажимаете.
В первом поле выбираете функцию выше(SaveCopyOnTime). Далее все понятно: выбираете период сохранения.
Сама функция будет сохранять с заданным периодом свою копию. При этом сначала в имени файла будет идти Дата и время, а затем оригинальное название файла. Файл сохраняется в той же папке в облаке, где оригинальный файл.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

telegt

Спасибо большое, что подсказали. А вы не могли бы более подробнее описать, как это сделать, а то я чайник полный  ;D

Дмитрий Щербаков(The_Prist)

Эм...Я в замешательстве. А куда подробнее-то? Я прописал пошагово все действия и текст скрипта привел. Я не знаю куда еще подробнее написать...
Если уж вообще не будет получаться, то попробуйте дождаться - сделаю видеоурок по данной теме. Но это после выходных только.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

telegt

а вы уже сделали видеоурок? с нетерпением его жду  :)

telegt

Просто я все сделала по вашему указанию. Но почему то у меня не бекапится само. Если только нажать на SaveCopyOnTime, тогда сохраняет, а само через заданный интервал никак.

Дмитрий Щербаков(The_Prist)

Цитата: telegt от 14.03.2017, 16:45:59а само через заданный интервал никак
А триггер точно устанавливали? Правильно настроили? Попробовали на ежечасный период?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

telegt

Да и сегодня мне пришло большое письмо в почту о сбое в бекапах в гугл таблице

telegt


Дмитрий Щербаков(The_Prist)

Так понятно же, чего пишет. скорее всего документ просто не открыт и функция не может обратиться ни к одному из его листов.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

telegt

Он открыт, и при этом сохранение не идет ,сохраняет есть перейти на страницу со скриптом и нажать SaveCopyOnTime, тогда тут же сохранит и все.Больше копий не делает. Таблица открытая остается, пробовала её менять .не менять, все равно ничего не меняется

Дмитрий Щербаков(The_Prist)

Значит так делайте(раз сохранять надо даже если с файлом не работаете в этот момент):
function SaveCopyOnTime() {
  var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/1wUtUgK4ha6kYFM4ZpA0jMnM33rbvklZ7iqnxthp-t00/edit#gid=50868603");
  var dt = new Date().toString();
  ss.copy(dt + ss.getSheetName());
}
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

telegt

Да, вот сейчас все круто. Я вместо вашей ссылки вставила в скрипте свою и она начала сохраняться. Только остался почему то кусочек вашего названия таблицы. Называет каждую копию вот так: Thu Mar 16 2017 14:48:34 GMT+0500 (PKT)Отчет 125 - и отчет 125 это название моего лита, а вот (РКТ) - не знаю откуда берется

Дмитрий Щербаков(The_Prist)

Цитата: telegt от 16.03.2017, 12:51:02а вот (РКТ) - не знаю откуда берется
Это указатель на часовой пояс(Pakistan local time). Почему гугл у Вас берет именно этот пояс - не могу сказать точно. У меня вообще по умолчанию северная африка :)
В принципе, Вы можете на гугле почитать про функции вроде format. Что-то вроде этого должно получиться(не уверен, что правильно указал часовой пояс):
function SaveCopyOnTime() {
  var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/1wUtUgK4ha6kYFM4ZpA0jMnM33rbvklZ7iqnxthp-t00/edit#gid=50868603");
  var dtString = Utilities.formatDate(new Date(), 'Russia/Moscow + 0300','MMMM dd yyyy hh:mm:ss')
  ss.copy(dtString + " " + ss.getSheetName());
}

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

zbz_13

Добрый день!

подскажите как можно сделать так, чтобы автоматически создавалась резервная копия гугл таблицы в определенную папку на гугл диске?

Яндекс.Метрика Рейтинг@Mail.ru