Перенос данных из 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 Таблицы — это просто» в Телеграме
Регулярно публикуем новые кейсы и советы. Заглядывайте в гости:
Сообщество MLO
Наиболее гибкое управление задачами. Работает так, как нужно Вам!
У вас есть проблемы напоминаний в MLO-Android? Ответьте: Да/Нет .
Как автоматизировать экспорт данных в Google Таблицы?
Вопросы/ответы по работе MLO на ПК
6 сообщений • Страница 1 из 1
Автор темы
rastamakc Сообщения: 78 Зарегистрирован: сен 2014 Есть ответ: 1 Откуда: Тюмень Благодарил (а): 20 раз Поблагодарили: 2 раза
Как автоматизировать экспорт данных в Google Таблицы?
Сообщение rastamakc » 10 июл 2021, 17:11
Задача:
Юзер в течение для работает в мобильной версии МЛО и МЛО ПК.
Нужно, чтобы в заданное время (05:00) происходила автоматическая синхронизация приложения МЛО ПК с облаком МЛО-клауд, потом эти свежие данные эспортировались и автоматически загружались в Google Таблицы.
Есть мысли, как это сделать, но, возможно, есть более простые пути. Прошу помощи, как это можно реализовать.
Моё решение:
1. Установить МЛО на удалённом сервере
2. Установить на этом же сервере программу, в которой можно создать макросы для других программ, назовём эту программу — «Макрос»
3. Макрос работает на сервере в постоянном режиме
4. в 05:00 запускает МЛО
5. Происходит синхронизация данных с облаком в открытой программе
6. «Макрос» делает экспорт в Excel
7. «Макрос» открывает нужную Гугл Таблицу
8. «Макрос» заполняет данными из Excel Гугл Таблицу
Смущает, что для этого придётся арендовать виртуальный сервер, а также настройка «Макроса»
Может есть более удобное и изящное решение?
edw Команда бета тестеров Сообщения: 509 Зарегистрирован: фев 2009 Откуда: Киев Благодарил (а): 23 раза Поблагодарили: 46 раз
Как автоматизировать экспорт данных в Google Таблицы?
Сообщение edw » 10 июл 2021, 20:09
rastamakc писал(а): Источник цитаты 1. Установить МЛО на удалённом сервере
2. Установить на этом же сервере программу, в которой можно создать макросы для других программ, назовём эту программу — «Макрос»
Почему не запускать макрос по расписанию на локальной машине пользователя?
rastamakc писал(а): Источник цитаты 6. «Макрос» делает экспорт в Excel
7. «Макрос» открывает нужную Гугл Таблицу
Я бы тут делал в такой последовательности:
6. «Макрос» делает экспорт в Excel и сохраняет файл на локальном диске
7. С помощью одного из (бесплатных) сервисов синхронизации от Google файл Excel синхронизируется на Диск Гугл
8. Встроенный в Гугл Таблицу скрипт по расписанию импортирует данные из Excel в Таблицу Гугл
Написать такой встроенный в таблицу скрипт будет проще, чем расширять функциональность локального макроса. По времени раздвинуть макросы на 5-10 мин.
Вопросы:
1. В формате Excel файл содержит шапку и данные. Что из этого вам надо? Если только данные, ИМХО проще импортировать MLO XML. Или на стороне ПК трансформировать блок данных из Excel в CSV.
2. Точно ли вам надо импортировать Excel в Таблицу Гугл? Диск Гугл позволяет хранить файлы Excel. А к данным CSV можно обращаться напрямую, без преобразования в Таблицу Гугл.
То есть в зависимости от того, что вы дальше будете делать с данными в Гугл есть шанс обойтись без второго скрипта.
MLO Windows v5 (macOS / CrossOver)
MLO iOS v3 (iPadOS)
MLO Android v3
MLO Cloud
Автор темы
rastamakc Сообщения: 78 Зарегистрирован: сен 2014 Есть ответ: 1 Откуда: Тюмень Благодарил (а): 20 раз Поблагодарили: 2 раза
Как автоматизировать экспорт данных в Google Таблицы?
Сообщение rastamakc » 11 июл 2021, 07:10
edw писал(а): Источник цитаты Почему не запускать макрос по расписанию на локальной машине пользователя?
В этом случае локальная машина,по сути, выступает в роли сервера и должна быть постоянно включена. Это не всегда возможно, так как существенная часть времени проводится в мобильном приложении (учитывая новую версию мло 4 для андроида, это будет ещё чаще).
Но арендовать целый VPS с виндой только для этих целей считаю нецелесообразным. Возможно, есть хостинги, где выделяют только виртуальную папку в среде Win, по аналогии с обычными виртуальными хостингами.
Была мысль заморочиться с настройкой VPS на Linux и запускать МЛО через wine, но.. блин. это мне кажется, вообще сложно.
edw писал(а): Источник цитаты В формате Excel файл содержит шапку и данные. Что из этого вам надо? Если только данные, ИМХО проще импортировать MLO XML. Или на стороне ПК трансформировать блок данных из Excel в CSV.
Только данные. Шапка не нужна
edw писал(а): Источник цитаты Точно ли вам надо импортировать Excel в Таблицу Гугл? Диск Гугл позволяет хранить файлы Excel. А к данным CSV можно обращаться напрямую, без преобразования в Таблицу Гугл.
Переход с Google Таблиц на Excel в Интернете
Чтобы загрузить лист в качестве файла Excel, перейдите к листу и нажмите Файл > Загрузить > Microsoft Excel (.xlsx).
Можно ли работать над электронной таблицей вместе с другими пользователями?
Конечно! Просто нажмите кнопку Общий доступ в правом верхнем углу.
Что произошло с панелью инструментов и меню?
Отличный вопрос! Первое, что вы увидите при первом запуске Excel, — это строка вкладок в верхней части экрана, а не панель инструментов и меню. Эта строка вкладок называется «лента». На ней находятся все инструменты и кнопки.
На вкладке Главная находятся наиболее часто используемые кнопки и функции: кнопки буфера обмена (такие как вырезание, копирование, вставка) и параметры форматирования (например, цвета, выравнивание и нумерованные списки).
Не забудьте просмотреть правую часть вкладки Главная: здесь находятся команды для вставки строк и столбцов, суммирования чисел и сортировки.
Могу ли я скачать Excel для своего планшета или телефона?
Конечно. Выберите тип устройства из приведенного ниже списка.
iOS
Android
Экспорт данных Excel в Google Sheets в Python
В этой статье вы узнаете, как программно экспортировать данные Excel в Google Таблицы на Python.
Файлы Excel широко используются для хранения данных и выполнения с ними различных типов операций, таких как создание диаграмм, применение формул. С другой стороны, Google Sheets – это популярное онлайн-приложение для создания электронных таблиц и управления ими. Google Sheets также обеспечивает обмен электронными таблицами в режиме реального времени с несколькими людьми. В некоторых случаях вам может потребоваться программно экспортировать файлы Excel XLS или XLSX в Google Таблицы. Для этого в этой статье представлено полное руководство по настройке проекта Google и экспорту данных из файлов Excel в Google Таблицы на Python.
- Предварительные условия — экспорт файлов Excel в Google Таблицы
- Облачный проект Google
- Библиотеки Python для преобразования Excel в Google Таблицы
Предварительные требования — экспорт данных Excel в таблицы Google на Python#
Облачный проект Google#
Для связи с Google Sheets нам нужно будет создать проект в Google Cloud и включить Google Sheets API. Кроме того, нам нужно создать учетные данные, которые используются для авторизации действий, которые мы собираемся выполнить с нашим кодом. Вы можете прочитать рекомендации о том, как создать проект Google Cloud и включить Google Sheets API.
После создания проекта Google Cloud и включения API Google Таблиц мы можем приступить к установке следующих API в нашем приложении Python.
Библиотеки Python для экспорта файлов Excel в Google Таблицы#
Для экспорта данных из файлов Excel XLS/XLSX в Google Таблицы нам потребуются следующие API.
- Aspose.Cells для Python — To read the data from Excel files.
- Клиентские библиотеки Google — To create and update spreadsheets on Google Sheets.
Экспорт данных из Excel в Google Таблицы на Python#
Ниже приведено пошаговое руководство о том, как считывать данные из файла Excel XLSX и записывать их в Google Sheets в приложении Python.
- Создайте новое приложение Python.
- Установите в проект Aspose.Cells и клиентские библиотеки Google.
pip install aspose.cells pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib
- Поместите файл JSON (мы загрузили его после создания учетных данных в Google Cloud) в каталог проекта.
- Напишите метод с именем createspreadsheet, который создает новую электронную таблицу в Google Sheets, задает имя таблицы по умолчанию и возвращает идентификатор электронной таблицы.
def create_spreadsheet(_service, _title, _sheetName): # Spreadsheet details spreadsheetBody = < 'properties': < 'title': "".format(_title) >, 'sheets': < 'properties': < 'title' : "".format(_sheetName) > > > # Create spreadsheet spreadsheet = _service.spreadsheets().create(body=spreadsheetBody, fields='spreadsheetId').execute() print('Spreadsheet ID: '.format(spreadsheet.get('spreadsheetId'))) print('Spreadsheet URL: "https://docs.google.com/spreadsheets/d/'.format(spreadsheet.get('spreadsheetId'))) # Open in web browser webbrowser.open_new_tab("https://docs.google.com/spreadsheets/d/".format(spreadsheet.get('spreadsheetId'))) return spreadsheet.get('spreadsheetId')
- Напишите еще один метод с именем addsheet, чтобы добавить новый лист в электронную таблицу Google.
def add_sheet(_service, _spreadsheetID, _sheetName): data = '.format(_sheetName)> > > ]> # Execute request res = _service.spreadsheets().batchUpdate(spreadsheetId=_spreadsheetID, body=data).execute()
- Теперь инициализируйте службу Google Таблиц, используя учетные данные (файл JSON) и определите области действия приложения. Параметр scopes используется для указания прав доступа к Google Sheets и их свойствам.
# If modifying these scopes, delete the file token.json. SCOPES = ['https://www.googleapis.com/auth/spreadsheets'] creds = None # The file token.json stores the user's access and refresh tokens, and is # created automatically when the authorization flow completes for the first # time. if os.path.exists('token.json'): creds = Credentials.from_authorized_user_file('token.json', SCOPES) # If there are no (valid) credentials available, let the user log in. if not creds or not creds.valid: if creds and creds.expired and creds.refresh_token: creds.refresh(Request()) else: flow = InstalledAppFlow.from_client_secrets_file( 'credentials1.json', SCOPES) creds = flow.run_local_server(port=0) # Save the credentials for the next run with open('token.json', 'w') as token: token.write(creds.to_json()) service = build('sheets', 'v4', credentials=creds)
- Затем загрузите файл Excel XLS или XLSX с помощью Aspose.Cells и получите имя первого листа в книге.
# Load Excel workbook wb = Workbook(fileName) # Get worksheets collection collection = wb.getWorksheets() collectionCount = collection.getCount() # Get workbook and first sheet's name spreadsheetName = wb.getFileName() firstSheetName = collection.get(0).getName()
- Вызовите метод createpreadsheet, чтобы создать новую электронную таблицу в Google Sheets.
# Create spreadsheet on Google Sheets spreadsheetID = create_spreadsheet(service, spreadsheetName, firstSheetName)
- Прокрутите рабочие листы в файле Excel. На каждой итерации считывайте данные с рабочего листа и добавляйте их в массив.
# Loop through all the worksheets for worksheetIndex in range(collectionCount): # Get worksheet using its index worksheet = collection.get(worksheetIndex) # Set worksheet range if(worksheetIndex==0): sheetRange= "!A:Y".format(firstSheetName) else: add_sheet(service, spreadsheetID, worksheet.getName()) sheetRange= "!A:Y".format(worksheet.getName()) # Get number of rows and columns rows = worksheet.getCells().getMaxDataRow() cols = worksheet.getCells().getMaxDataColumn() # List to store worksheet's data worksheetDatalist = [] # Loop through rows for i in range(rows): # List to store each row in worksheet rowDataList = [] # Loop through each column in selected row for j in range(cols): cellValue = worksheet.getCells().get(i, j).getValue() if( cellValue is not None): rowDataList.append(str(cellValue)) else: rowDataList.append("") # Add to worksheet data worksheetDatalist.append(rowDataList)
- Для каждого рабочего листа в файле Excel создайте запрос на запись данных в Google Sheets.
# Set values body = < 'values': worksheetDatalist ># Execute request result = service.spreadsheets().values().update( spreadsheetId=spreadsheetID, range=sheetRange, valueInputOption='USER_ENTERED', body=body).execute() # Print number of updated cells print(' cells updated.'.format(result.get('updatedCells')))
Ниже приведена полная функция для экспорта данных из файла Excel в электронную таблицу в Google Sheets.
def export_to_google(fileName): # If modifying these scopes, delete the file token.json. SCOPES = ['https://www.googleapis.com/auth/spreadsheets'] creds = None # The file token.json stores the user's access and refresh tokens, and is # created automatically when the authorization flow completes for the first # time. if os.path.exists('token.json'): creds = Credentials.from_authorized_user_file('token.json', SCOPES) # If there are no (valid) credentials available, let the user log in. if not creds or not creds.valid: if creds and creds.expired and creds.refresh_token: creds.refresh(Request()) else: flow = InstalledAppFlow.from_client_secrets_file( 'credentials1.json', SCOPES) creds = flow.run_local_server(port=0) # Save the credentials for the next run with open('token.json', 'w') as token: token.write(creds.to_json()) try: service = build('sheets', 'v4', credentials=creds) # Load Excel workbook wb = Workbook(fileName) # Get worksheets collection collection = wb.getWorksheets() collectionCount = collection.getCount() # Get workbook and first sheet's name spreadsheetName = wb.getFileName() firstSheetName = collection.get(0).getName() # Create spreadsheet on Google Sheets spreadsheetID = create_spreadsheet(service, spreadsheetName, firstSheetName) # To set worksheet range sheetRange = None # Loop through all the worksheets for worksheetIndex in range(collectionCount): # Get worksheet using its index worksheet = collection.get(worksheetIndex) # Set worksheet range if(worksheetIndex==0): sheetRange= "!A:Y".format(firstSheetName) else: add_sheet(service, spreadsheetID, worksheet.getName()) sheetRange= "!A:Y".format(worksheet.getName()) # Get number of rows and columns rows = worksheet.getCells().getMaxDataRow() cols = worksheet.getCells().getMaxDataColumn() # List to store worksheet's data worksheetDatalist = [] # Loop through rows for i in range(rows): # List to store each row in worksheet rowDataList = [] # Loop through each column in selected row for j in range(cols): cellValue = worksheet.getCells().get(i, j).getValue() if( cellValue is not None): rowDataList.append(str(cellValue)) else: rowDataList.append("") # Add to worksheet data worksheetDatalist.append(rowDataList) # Set values body = < 'values': worksheetDatalist ># Execute request result = service.spreadsheets().values().update( spreadsheetId=spreadsheetID, range=sheetRange, valueInputOption='USER_ENTERED', body=body).execute() # Print number of updated cells print(' cells updated.'.format(result.get('updatedCells'))) except HttpError as err: print(err) print("Workbook has been exported to Google Sheets.")
Полный исходный код#
Ниже приведен полный исходный код для экспорта файла Excel XLSX в Google Таблицы на Python.
from __future__ import print_function import jpype import webbrowser import os.path from google.auth.transport.requests import Request from google.oauth2.credentials import Credentials from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build from googleapiclient.errors import HttpError import asposecells jpype.startJVM() from asposecells.api import Workbook, License def export_to_google(fileName): # If modifying these scopes, delete the file token.json. SCOPES = ['https://www.googleapis.com/auth/spreadsheets'] creds = None # The file token.json stores the user's access and refresh tokens, and is # created automatically when the authorization flow completes for the first # time. if os.path.exists('token.json'): creds = Credentials.from_authorized_user_file('token.json', SCOPES) # If there are no (valid) credentials available, let the user log in. if not creds or not creds.valid: if creds and creds.expired and creds.refresh_token: creds.refresh(Request()) else: flow = InstalledAppFlow.from_client_secrets_file( 'credentials1.json', SCOPES) creds = flow.run_local_server(port=0) # Save the credentials for the next run with open('token.json', 'w') as token: token.write(creds.to_json()) try: service = build('sheets', 'v4', credentials=creds) # Load Excel workbook wb = Workbook(fileName) # Get worksheets collection collection = wb.getWorksheets() collectionCount = collection.getCount() # Get workbook and first sheet's name spreadsheetName = wb.getFileName() firstSheetName = collection.get(0).getName() # Create spreadsheet on Google Sheets spreadsheetID = create_spreadsheet(service, spreadsheetName, firstSheetName) # To set worksheet range sheetRange = None # Loop through all the worksheets for worksheetIndex in range(collectionCount): # Get worksheet using its index worksheet = collection.get(worksheetIndex) # Set worksheet range if(worksheetIndex==0): sheetRange= "!A:Y".format(firstSheetName) else: add_sheet(service, spreadsheetID, worksheet.getName()) sheetRange= "!A:Y".format(worksheet.getName()) # Get number of rows and columns rows = worksheet.getCells().getMaxDataRow() cols = worksheet.getCells().getMaxDataColumn() # List to store worksheet's data worksheetDatalist = [] # Loop through rows for i in range(rows): # List to store each row in worksheet rowDataList = [] # Loop through each column in selected row for j in range(cols): cellValue = worksheet.getCells().get(i, j).getValue() if( cellValue is not None): rowDataList.append(str(cellValue)) else: rowDataList.append("") # Add to worksheet data worksheetDatalist.append(rowDataList) # Set values body = < 'values': worksheetDatalist ># Execute request result = service.spreadsheets().values().update( spreadsheetId=spreadsheetID, range=sheetRange, valueInputOption='USER_ENTERED', body=body).execute() # Print number of updated cells print(' cells updated.'.format(result.get('updatedCells'))) except HttpError as err: print(err) print("Workbook has been exported to Google Sheets.") def create_spreadsheet(_service, _title, _sheetName): # Spreadsheet details spreadsheetBody = < 'properties': < 'title': "".format(_title) >, 'sheets': < 'properties': < 'title' : "".format(_sheetName) > > > # Create spreadsheet spreadsheet = _service.spreadsheets().create(body=spreadsheetBody, fields='spreadsheetId').execute() # Open in web browser webbrowser.open_new_tab("https://docs.google.com/spreadsheets/d/".format(spreadsheet.get('spreadsheetId'))) return spreadsheet.get('spreadsheetId') def add_sheet(_service, _spreadsheetID, _sheetName): data = <'requests': [ < 'addSheet':< 'properties':<'title': ''.format(_sheetName)> > > ]> # Execute request res = _service.spreadsheets().batchUpdate(spreadsheetId=_spreadsheetID, body=data).execute() # Create a Aspose.Cells icense object license = License() # Set the license of Aspose.Cells to avoid the evaluation limitations license.setLicense("D:\\Licenses\\Conholdate.Total.Product.Family.lic") export_to_google("Book1.xlsx")
Получите бесплатную лицензию Aspose.Cells#
Вы можете получить бесплатную временную лицензию и использовать Aspose.Cells for Python без ограничений на пробную версию.
Вывод#
В этой статье вы узнали, как экспортировать данные Excel в Google Таблицы на Python. Мы рассмотрели, как создать проект в Google Cloud, включить API Google Таблиц, прочитать файлы Excel и экспортировать данные из файлов Excel в Google Таблицы. Чтобы узнать больше об Aspose.Cells для Python, вы можете посетить документацию. Также вы можете задать свои вопросы на нашем форуме.
Смотрите также#
- Aspose.Cells Product Family
- Convert Excel File to Google Sheets Python
- Export Data from Excel XLSX to Google Sheets Python
- Export Excel to Google Sheet in Python