Отправка данных из *.XLSX в Google Sheets
Всем привет! Я обычный пользователь MS Excel и Google Docs, любитель-программист на VBA, App Script и JavaScript.
Задача
В данной статье хочу показать как можно быстро и легко отправить объемные данные из файла *.XLSX в Google Sheets при помощи VBA и App Script сохранив тем самым формат отправляемых данных(границы, заливки и прочее).
Цель статьи — поделиться доступным инструментом по отправки данных в Google Sheets из XLSX в автоматическом режиме, при помощи VBA и App Script.
Все инструменты реализованы стандартными средствами VBA, App Script без использования дополнительных библиотек.
Подготовительный этап, в наличии имеем:
Практическая часть:
Алгоритм работы автоматической отправки данных с XLSX в Google Sheets заключается в следующем, при помощи VBA отправляем данные через почтовую службу Outlook на свою почту Gmail с определенной меткой, после чего App Script извлекает данные в Google Sheets документ.
В редактроре VBA создадим функцию и процедуру по отправки письма с вложением:
Function SendEmailOutlook(ByVal Email$, ByVal MailText$, Optional ByVal Subject$ = "", _ Optional ByVal AttachFilename As Variant) As Boolean On Error Resume Next: Err.Clear Dim OA As Object: Set OA = CreateObject("Outlook.Application") If OA Is Nothing Then MsgBox "Не удалось запустить OUTLOOK для отправки почты", vbCritical: Exit Function With OA.CreateItem(0) 'создаем новое сообщение .To = Email$: .Subject = Subject$: .Body = MailText$ If VarType(AttachFilename) = vbString Then .Attachments.Add AttachFilename If VarType(AttachFilename) = vbObject Then ' AttachFilename as Collection For Each File In AttachFilename: .Attachments.Add File: Next End If For i = 1 To 100000: DoEvents: Next ' без паузы не отправляются письма без вложений Err.Clear: .send SendEmailOutlook = Err = 0 End With Set OutApp = Nothing End Function ________________________________________________________________________________ Sub sendMail() 'отправляем письмо с 1 вложением attach$ = "Ваш_путь_до_файла\файл.xlsx" ' прикрепляем текущий файл Excel res = SendEmailOutlook("itkod2020@gmail.com", "", "Label_для_Gmail", attach$) End Sub
Далее, необходимо в редакторе App Script вашей Google таблицы создать две фукции.Первая, будет проверять входящие письма с «Вашей меткой». Вторая, по созданию новой книги в Google Drive с полученными данными Эксель, которая скопирует в ваш Google sheet и удалить более ненужную книгу с Google Drive.


function emailTrigger() < var label = GmailApp.getUserLabelByName("Ваша_Метка в Gmail"); //метка на папку в гугл почта if(label != null)< var threads = label.getThreads(); for (var i=0; i> >
Функция для извлечения файла Excel
function getExcelFile(thread) < //Функция для извлечения файла Excel var messages = thread.getMessages(); //извлекает сообщения в первом потоке var len = messages.length; //Получает количество сообщений в первом потоке var message = messages[len-1] //получает первое сообщение в данном потоке var attachments = message.getAttachments(); // Получает вложение первого сообщения //Обработка пркрепленного файла var xlsxBlob = attachments[0]; // Предполагается, что вложения[0] - это большой двоичный объект файла xlsx. Logger.log(xlsxBlob.getContentType()) var convertedSpreadsheetId = Drive.Files.insert(, xlsxBlob).id; //Преобразует Excel в "Google Лист" на Google диске и получает идентификатор файла var filename = xlsxBlob.getName(); //возвращает имя файла преобразованных файлов var tabName = filename.substring(13).slice(0,filename.length-18); // обработайте строку имени файла только в дату, которая будет именем вкладки var sheet = SpreadsheetApp.openById(convertedSpreadsheetId).getSheets()[0]; // Расположение преобразованного файла Excel -> теперь google sheet var destination = SpreadsheetApp.openById("ID вашего Google Sheets"); //id гугл файла(из ссылки ) var sss=destination.getSheetByName("Имя листа в Google Sheets");//название гугл листа куда летят данные //Удаление файла с Drive Google Drive.Files.remove(convertedSpreadsheetId); labelName='Ваша_Метка в Gmail'; deleteForever(labelName); > function deleteForever(labelName) < var threads = GmailApp.search("in:trash label:" + labelName); for (var i = 0; i < threads.length; i++) < threads[i].moveToTrash(); >>;
Настраиваем триггер как вам удобно: раз в минуты, каждый час и т.д.

Создаем в Gmail папку с меткой(Label) по которой App Script будет анализировать.На этом этапе завершается механизм получение и обработки данных.
Далее, можно запустить процедуру на VBA «Sub sendMail()» для проверки работоспособнисти механизма и использовать по своего целевому назначению.
Заключение
Реализуемый функционал взаимодействия Эксель с Google Sheets, по отправки и получения данных удобен и практичен как в его реализации так и в обработки значительных объемных данных.
Перенос данных из Excel в Google Таблицы и наоборот
В меню Файл выберите пункт Импорт:

Затем перейдите на вкладку Загрузка, нажмите на единственную кнопку Выберите файл на компьютере или перетащите иконку с файлом в это окно:

После того как вы выберете или перетащите файл, появится следующее окно импорта:

В первом случае (Создать таблицу) появится новый документ, во втором (Вставить лист(ы)) — новые листы в текущем документе, а в третьем все данные в текущем документе будут заменены на данные из импортированного файла Excel.
После того как вы выберете подходящий вариант, нажмите кнопку Импортировать.
Экспорт в Excel
Чтобы сохранить таблицу на локальный диск в формате Excel, проделайте следующий путь:

Файл → Скачать как → Microsoft Excel (XLSX)
Книга сохранится на ваш локальный диск.
Обратите внимание, что при экспорте в Excel не сохранятся изображения, которые вы загрузили с помощью функции IMAGE, а результаты работы функций, которых нет в Excel, сохранятся — но как значения. Это касается, например, функций SPLIT, IMPORTRANGE и других функций импорта (IMPORTXML, IMPORTDATA, IMPORTHTML), UNIQUE и COUNTUNIQUE, QUERY, REGEXEXTRACT, GOOGLEFINANCE.
Функции SPARKLINE превратятся в обычные спарклайны Excel.
Отсутствующие в Excel функции при экспорте превращаются в ЕСЛИОШИБКА (IFERROR), где в качестве первого аргумента будет запись вида __xludf.DUMMYFUNCTION (функция), которая и выдаст ошибку в Excel, а в качестве второго аргумента — то значение, которое возвращала эта функция в момент экспорта.
Канал «Google Таблицы — это просто» в Телеграме
Регулярно публикуем новые кейсы и советы. Заглядывайте в гости:
Переход с Google Таблиц на Excel в Интернете
Чтобы загрузить лист в качестве файла Excel, перейдите к листу и нажмите Файл > Загрузить > Microsoft Excel (.xlsx).

Можно ли работать над электронной таблицей вместе с другими пользователями?
Конечно! Просто нажмите кнопку Общий доступ в правом верхнем углу.

Что произошло с панелью инструментов и меню?
Отличный вопрос! Первое, что вы увидите при первом запуске Excel, — это строка вкладок в верхней части экрана, а не панель инструментов и меню. Эта строка вкладок называется «лента». На ней находятся все инструменты и кнопки.
На вкладке Главная находятся наиболее часто используемые кнопки и функции: кнопки буфера обмена (такие как вырезание, копирование, вставка) и параметры форматирования (например, цвета, выравнивание и нумерованные списки).
Не забудьте просмотреть правую часть вкладки Главная: здесь находятся команды для вставки строк и столбцов, суммирования чисел и сортировки.

Могу ли я скачать Excel для своего планшета или телефона?
Конечно. Выберите тип устройства из приведенного ниже списка.

iOS

Android
Как перенести Excel в Google Таблицу: пошаговая инструкция
Если требуется перенести таблицу Excel в Google Таблицы, то это можно сделать двумя способами, описанными ниже.
Видеоинструкция

После загрузки можно открыть файл при помощи Google Таблиц.

Все готово, файл полностью перенесен.

Второй способ
Для этого открываем нужный файл Excel и копируем таблицу.

После открываем Google Таблицу и кликаем правой клавишей мыши и в списке выбираем «Вставить».

Все готово таблица перенесена.

Важно! В этом случае каждый лист придется переносить отдельно.
Важно! При использовании второго способа формулы не будут перенесены, а лишь в виде значений.
Подписывайтесь на наш канал в Яндекс.Дзен
Подписывайтесь на наш Telegram-канал
Подписывайтесь на наш Youtube-канал
Подписывайтесь на нашу группу ВКонтакте
Вам также будет интересно
Добавить комментарий Отменить ответ
(11 оценок, среднее: 3,64 из 5)
- Наши социальные сети


- CRM-системы (9)
- Excel (73)
- Google Ads (56)
- Google Data Studio (26)
- Google Optimize (2)
- Google Search Console (22)
- Google Аналитика (50)
- Google Менеджер Тегов (4)
- Google Мой бизнес (3)
- Opencart (33)
- SEO (94)
- SMM (25)
- WordPress (20)
- Yandex DataLens (3)
- Веб-аналитика (148)
- Визуализация данных (13)
- Домены (15)
- Кейсы (6)
- Контекстная реклама (113)
- Локальное SEO (8)
- Полезное (69)
- Сайтостроение (89)
- Таргетинг (31)
- Формулы (16)
- Яндекс.Вебмастер (56)
- Яндекс.Директ (66)
- Яндекс.Маркет (16)
- Яндекс.Метрика (43)
- Яндекс.Справочник (6)
- Ильхом Чакканбаев к записи Бесплатный VPS (VDS) от Oracle навсегда: как получить
- Ильхом Чакканбаев к записи Бесплатный VPS (VDS) от Oracle навсегда: как получить
- Ильхом Чакканбаев к записи Бесплатный VPS (VDS) от Oracle навсегда: как получить
- Юзер к записи Бесплатный VPS (VDS) от Oracle навсегда: как получить
- Юзер к записи Бесплатный VPS (VDS) от Oracle навсегда: как получить
- Обзор сервиса Gerwin.io: генерация контента при помощи ИИ
© 2024
Сео Пульс — блог об интернет-маркетинге