Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Автоматические бэкапы Гугл Таблиц по расписанию - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Автоматические бэкапы Гугл Таблиц по расписанию
mvdRF Дата: Суббота, 27.08.2022, 18:29 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Добрый день. Нуждаюсь в помощи, т.к. сам мало что понимаю. У меня есть гугл таблица в которую через Glide стекаются данные от 10 сотрудников (ежедневный отчет). По триггеру в 23:00-00:00 каждый день происходит запуск скрипта и таблица очищается скриптом, что бы на следующий день заполнялся новый отчет. Задача состоит в том что бы эта таблица сохранялась у меня каждый день в новый файл. Я реализовал это с помощью ежедневной резервной копии так же по тригеру через скрипт, но эти резервные копии автоматически очищаются (данные удаляются так же как в изначальном файле по расписанию). Как можно реализовать, что бы отчет за каждый день сохранялся отдельно? Может есть другой путь реализации? Не могу сообразить. Спасибо.
 
Ответить
СообщениеДобрый день. Нуждаюсь в помощи, т.к. сам мало что понимаю. У меня есть гугл таблица в которую через Glide стекаются данные от 10 сотрудников (ежедневный отчет). По триггеру в 23:00-00:00 каждый день происходит запуск скрипта и таблица очищается скриптом, что бы на следующий день заполнялся новый отчет. Задача состоит в том что бы эта таблица сохранялась у меня каждый день в новый файл. Я реализовал это с помощью ежедневной резервной копии так же по тригеру через скрипт, но эти резервные копии автоматически очищаются (данные удаляются так же как в изначальном файле по расписанию). Как можно реализовать, что бы отчет за каждый день сохранялся отдельно? Может есть другой путь реализации? Не могу сообразить. Спасибо.

Автор - mvdRF
Дата добавления - 27.08.2022 в 18:29
Gustav Дата: Суббота, 27.08.2022, 20:40 | Сообщение № 2
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Просто заведите себе архивную таблицу. На одном рабочем листе - в этом же файле или в другом (если надо чтобы сотрудники совсем не видели), неважно. Каждый день перед очищением основной таблицы сливайте данные в архив (также скриптом по триггеру). Возможно, надо будет добавить к сохраняемым данным пару колонок - дату и номер строки внутри даты (и то это если только сами данные не содержат явной привязки к датам). Как-то так. Годится подход? Кстати, сколько данных за один типичный день собирается ( строк х столбцов)?


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеПросто заведите себе архивную таблицу. На одном рабочем листе - в этом же файле или в другом (если надо чтобы сотрудники совсем не видели), неважно. Каждый день перед очищением основной таблицы сливайте данные в архив (также скриптом по триггеру). Возможно, надо будет добавить к сохраняемым данным пару колонок - дату и номер строки внутри даты (и то это если только сами данные не содержат явной привязки к датам). Как-то так. Годится подход? Кстати, сколько данных за один типичный день собирается ( строк х столбцов)?

Автор - Gustav
Дата добавления - 27.08.2022 в 20:40
mvdRF Дата: Суббота, 27.08.2022, 22:57 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Gustav, Отчёт в заголовке имеет скрепление с текущей датой, а так как сохраняется до 00:00 должен по задумке сохраняться с ней. Бэкап тоже в имени имеет дату сохранения. Правда при открытии бэкапа строки автоматом стираются, а дата переписывается с чем и хочу справиться. Сотрудников всего 12 на каждого по строчке, которые суммируется в итоговой графе. Столбцов штук 15. Может ткнете носом в любой подходящий мануал по архивным таблицам? Я не очень ориентируясь... Спасибо
 
Ответить
СообщениеGustav, Отчёт в заголовке имеет скрепление с текущей датой, а так как сохраняется до 00:00 должен по задумке сохраняться с ней. Бэкап тоже в имени имеет дату сохранения. Правда при открытии бэкапа строки автоматом стираются, а дата переписывается с чем и хочу справиться. Сотрудников всего 12 на каждого по строчке, которые суммируется в итоговой графе. Столбцов штук 15. Может ткнете носом в любой подходящий мануал по архивным таблицам? Я не очень ориентируясь... Спасибо

Автор - mvdRF
Дата добавления - 27.08.2022 в 22:57
Gustav Дата: Воскресенье, 28.08.2022, 03:15 | Сообщение № 4
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Дык таблица - архивная по смыслу использования. А так это обычная Гугл таблица. Покажите свою - поймем что надо делать. Сделайте её копию без триггера, чтобы не стирал данные. Реальные ФИО или продукцию замените на сотрудник 1, сотрудник 2 (3 и т.д.) или товар 1, товар 2.


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеДык таблица - архивная по смыслу использования. А так это обычная Гугл таблица. Покажите свою - поймем что надо делать. Сделайте её копию без триггера, чтобы не стирал данные. Реальные ФИО или продукцию замените на сотрудник 1, сотрудник 2 (3 и т.д.) или товар 1, товар 2.

Автор - Gustav
Дата добавления - 28.08.2022 в 03:15
mvdRF Дата: Воскресенье, 28.08.2022, 12:04 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Gustav, https://docs.google.com/spreads....sharing - сама табличка, ничего конфиденциального. В клетке a8 формула для импорта данных. К табличке подвязана аналогичная по графам, только в упрощенном виде (в нее все данные от сотрудников приходят и она же сама очищается затирая впоследствии данные вплоть до бэкапов). Если убрать скрипт очистки изначальной таблицы, новая же будет заполнятся вместе со старыми данными... Не знаю как по другому.


Сообщение отредактировал mvdRF - Воскресенье, 28.08.2022, 12:14
 
Ответить
СообщениеGustav, https://docs.google.com/spreads....sharing - сама табличка, ничего конфиденциального. В клетке a8 формула для импорта данных. К табличке подвязана аналогичная по графам, только в упрощенном виде (в нее все данные от сотрудников приходят и она же сама очищается затирая впоследствии данные вплоть до бэкапов). Если убрать скрипт очистки изначальной таблицы, новая же будет заполнятся вместе со старыми данными... Не знаю как по другому.

Автор - mvdRF
Дата добавления - 28.08.2022 в 12:04
Gustav Дата: Вторник, 30.08.2022, 01:24 | Сообщение № 6
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Сделал примерную "рыбу": https://docs.google.com/spreads....sharing
Функция называется moveToArchive.


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеСделал примерную "рыбу": https://docs.google.com/spreads....sharing
Функция называется moveToArchive.

Автор - Gustav
Дата добавления - 30.08.2022 в 01:24
mvdRF Дата: Вторник, 30.08.2022, 09:46 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Gustav, Суть я уловил, только это не совсем то чего хочется достичь. В идеале нужны отдельные файлы. Т.е. что бы все шло не в одну сводную таблицу, а за каждый день сохранялся отдельный отчет.
 
Ответить
СообщениеGustav, Суть я уловил, только это не совсем то чего хочется достичь. В идеале нужны отдельные файлы. Т.е. что бы все шло не в одну сводную таблицу, а за каждый день сохранялся отдельный отчет.

Автор - mvdRF
Дата добавления - 30.08.2022 в 09:46
Gustav Дата: Вторник, 30.08.2022, 13:39 | Сообщение № 8
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Ок, тогда, скорее всего, надо просто после создания копии войти в нее и сохранить все данные Лист1 как значения (без формул). Сделать это можно так. В коде функции makeCopy замените заключительный фрагмент:
[vba]
Код
// makes copy of "file" with "name" at the "destination"
file.makeCopy(name, destination);
}
[/vba]
на такую последовательность операторов:
[vba]
Код
// makes copy of "file" with "name" at the "destination"
var fileNew = file.makeCopy(name, destination);
  
var ssNew = SpreadsheetApp.openById(fileNew.getId());
var rng = ssNew.getSheetByName('Лист1').getDataRange();
rng.copyTo(rng, SpreadsheetApp.CopyPasteType.PASTE_VALUES, false)
}
[/vba]


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеОк, тогда, скорее всего, надо просто после создания копии войти в нее и сохранить все данные Лист1 как значения (без формул). Сделать это можно так. В коде функции makeCopy замените заключительный фрагмент:
[vba]
Код
// makes copy of "file" with "name" at the "destination"
file.makeCopy(name, destination);
}
[/vba]
на такую последовательность операторов:
[vba]
Код
// makes copy of "file" with "name" at the "destination"
var fileNew = file.makeCopy(name, destination);
  
var ssNew = SpreadsheetApp.openById(fileNew.getId());
var rng = ssNew.getSheetByName('Лист1').getDataRange();
rng.copyTo(rng, SpreadsheetApp.CopyPasteType.PASTE_VALUES, false)
}
[/vba]

Автор - Gustav
Дата добавления - 30.08.2022 в 13:39
mvdRF Дата: Вторник, 30.08.2022, 15:44 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Gustav, Добавил код в скрипт своей отчетной таблицы. Получилось:

В результате выполнения скрипта выходит "Ошибка
Exception: You do not have permission to call SpreadsheetApp.openById. Required permissions: https://www.googleapis.com/auth/spreadsheets". Резервная копия в папке появляется, но формулы так же копируются и данные затираются после очистки исходников.


Сообщение отредактировал Serge_007 - Вторник, 30.08.2022, 15:56
 
Ответить
СообщениеGustav, Добавил код в скрипт своей отчетной таблицы. Получилось:

В результате выполнения скрипта выходит "Ошибка
Exception: You do not have permission to call SpreadsheetApp.openById. Required permissions: https://www.googleapis.com/auth/spreadsheets". Резервная копия в папке появляется, но формулы так же копируются и данные затираются после очистки исходников.

Автор - mvdRF
Дата добавления - 30.08.2022 в 15:44
Gustav Дата: Среда, 31.08.2022, 12:14 | Сообщение № 10
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Ошибка
Exception: You do not have permission to call SpreadsheetApp.openById. Required permissions: https://www.googleapis.com/auth/spreadsheets

Гугл, время от времени, чудит с полномочиями, наверное, типа улучшает безопасность. Из-за этого то, что раньше без проблем работало годами, вдруг начинает сбоить. В общем, данная проблема решается следующим образом.

Находясь в Редакторе скриптов (Расширения\Apps Script), выполняем команду меню "Вид \ Показать файл манифеста" - открывается еще одно окно редактора с файлом appsscript.json примерно такого содержания:
[vba]
Код
{
  "timeZone": "Europe/Moscow",
  "dependencies": {
  },
  "exceptionLogging": "STACKDRIVER",
  "oauthScopes": ["https://www.googleapis.com/auth/spreadsheets", "https://www.googleapis.com/auth/drive"],
  "runtimeVersion": "V8"
}
[/vba]
Для решения проблемы важно, чтобы в этом файле присутствовал фрагмент:
[vba]
Код
"oauthScopes": ["https://www.googleapis.com/auth/spreadsheets", "https://www.googleapis.com/auth/drive"]
[/vba]
Если его нет, то добавьте - в любое место внутри общего списка между крайними фигурными скобками, добавив также нужную разделительную запятую.


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение
Ошибка
Exception: You do not have permission to call SpreadsheetApp.openById. Required permissions: https://www.googleapis.com/auth/spreadsheets

Гугл, время от времени, чудит с полномочиями, наверное, типа улучшает безопасность. Из-за этого то, что раньше без проблем работало годами, вдруг начинает сбоить. В общем, данная проблема решается следующим образом.

Находясь в Редакторе скриптов (Расширения\Apps Script), выполняем команду меню "Вид \ Показать файл манифеста" - открывается еще одно окно редактора с файлом appsscript.json примерно такого содержания:
[vba]
Код
{
  "timeZone": "Europe/Moscow",
  "dependencies": {
  },
  "exceptionLogging": "STACKDRIVER",
  "oauthScopes": ["https://www.googleapis.com/auth/spreadsheets", "https://www.googleapis.com/auth/drive"],
  "runtimeVersion": "V8"
}
[/vba]
Для решения проблемы важно, чтобы в этом файле присутствовал фрагмент:
[vba]
Код
"oauthScopes": ["https://www.googleapis.com/auth/spreadsheets", "https://www.googleapis.com/auth/drive"]
[/vba]
Если его нет, то добавьте - в любое место внутри общего списка между крайними фигурными скобками, добавив также нужную разделительную запятую.

Автор - Gustav
Дата добавления - 31.08.2022 в 12:14
mvdRF Дата: Среда, 31.08.2022, 14:27 | Сообщение № 11
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Gustav, Все заработало. Спасибо отправил.
К сообщению приложен файл: 6944383.jpg (29.4 Kb)


Сообщение отредактировал mvdRF - Среда, 31.08.2022, 14:27
 
Ответить
СообщениеGustav, Все заработало. Спасибо отправил.

Автор - mvdRF
Дата добавления - 31.08.2022 в 14:27
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!