Сложный перенос данных из почтового вложения в шаблон - PullRequest
1 голос
/ 29 октября 2019

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

В основном вот что я хочу сделать:

  1. Фильтр писем от определенных людей
  2. Загрузка вложений этих писем (в формате Excel) в определенную папкув накопителе (называемом «Ввод»)
  3. Перетащите данные из этих таблиц в определенные ячейки другой электронной таблицы (основного шаблона), находящейся в другой части накопителя (вероятно, более ста переносов значений ячеек)
  4. Автоматически удаляет загруженные вложения в дисководе, чтобы подготовиться к следующим (с тем же именем) файлам, которые будут загружены завтра.
  5. Как только мастер заполнится, сделайте копию всей электронной таблицы, переименуйте ее в сегодняшнюю дату, а затем вытрите мастер, чтобы промыть и повторить тот же процесс завтра.

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

  1. Фильтрация электронных писем с помощью системы меток Gmail

  2. Используйте этот метод для загрузки электронных писем: https://www.splitbrain.org/blog/2017-01/30-save_gmail_attachments_to_google_drive

  3. Создайте постоянную электронную таблицу в поле " Input "папка (называемая" Master Array") для размещения всех данных из загруженных электронных таблиц и их соответствующих вложенных листов. Цель состоит в том, чтобы иметь один постоянный File_ID, содержащий все данные.

  4. Создать поиск, если массив , в Master Array , который будетнайдите правильные файлы по их соответствующим именам и разместите их данные в правильных подсписках в электронной таблице Master Array (т. е. если имя файла содержит данные массива «Продажи компании» в подсписке «Продажи»).

  5. ImportRange , Запрос , Vlookup и т. Д., Что " Master Array " электронная таблицаи вытяните все нужные мне значения оттуда в соответствующие ячейки в Мастер-шаблоне , которым они должны быть.

  6. Как только мастер-шаблон создан, я хочу скопировать всю электронную таблицу, переименовать ее на сегодняшнюю дату, а затем стереть оригинал (подготавливая его к тому жезавтрашний день)(с помощью триггера Google)

  7. Удалите все загруженные вложения электронной почты в папке диска " Ввод ", чтобы промыть и повторить ту же функцию на следующий день. (используя триггер Google).

У меня есть несколько вопросов:

  1. Есть ли более эффективный способ сделать это?

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

  3. Могу ли я использовать функцию цикла / if для перетаскивания определенных ячеек на определенные листы в Мастер-шаблоне , в основном, с функциями для каждого имени листа, так что если IF sheetname = "Sales" тянуть ячейки A2из другой таблицы в b3 ... и т. д.

Извините, это очень долго и надежно, просто хотел посмотреть, возможно ли это сделать всесторонне или нет. Спасибо за любой вклад, я относительно новичок в ведомостях, так что прости мою наивность.

1 Ответ

1 голос
/ 30 октября 2019

1) Вы можете использовать поисковый запрос при получении списка сообщений [1] [2].

2) Вы можете разработать свой собственный код, чтобы получить список сообщений и получить вложения для каждого письма, используяКласс GmailApp [3].

3, 4, 5) Сначала необходимо преобразовать Excel в Google Sheets [4], чтобы можно было легко управлять таблицами с помощью класса SpreadsheetApp [5].

6) Вы можете скопировать электронную таблицу следующим образом [6] и получить весь диапазон данных для ее очистки [7].

7) Использовать эту [8].

[1] https://developers.google.com/gmail/api/guides/filtering

[2] https://support.google.com/mail/answer/7190

[3] https://developers.google.com/apps-script/reference/gmail/gmail-app

[4] Преобразование .xls в электронную таблицу Google вскрипт Google Apps

[5] https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app

[6] Сценарий Google Apps, скопируйте одну электронную таблицу в другую с форматированием

[7] https://developers.google.com/apps-script/reference/spreadsheet/range#clear()

[8] https://developers.google.com/apps-script/reference/drive/drive-app#removeFile(File)

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