Как работать с экселем таблицы: Формулы Excel для вычисления разных типов данных с примерами и описанием
Содержание
Как скрестить Excel c интерактивным веб-приложением / Хабр
Не секрет, что Excel довольно мощный инструмент для работы с числовыми табличными данными. Однако средства, которые предоставляет Microsoft для интеграции с ним, далеки от идеала. В частности, сложно интегрировать в Excel современные пользовательские интерфейсы. Нам нужно было дать пользователям Excel возможность работать с довольно насыщенным и функциональным интерфейсом. Мы пошли несколько другим путем, который в итоге показал хороший результат. В этой статье я расскажу, как можно организовать интерактивное взаимодействие Excel c веб-приложением на Angular и расшить Excel практически любым функционалом, который реализуем в современном веб-приложении.
Итак, меня зовут Михаил и я CTO в Exerica. Одна из проблем которые мы решаем — облегчение работы финансовых аналитиков с числовыми данными. Обычно они работают как с исходными документами финансовой и статистической отчетности, так и каким-либо инструментом для создания и поддержания аналитических моделей. Так сложилось, что 99% аналитиков работают в Microsoft Excel и делают там довольно сложные вещи. Поэтому перевести их с Excel на другие решения не эффективно и практически невозможно. Объективно, «облачные» сервисы электронных таблиц до функционала Excel пока не дотягивают. Но в современном мире инструменты должны быть удобны и соответствовать ожиданиям пользователей: открываться по клику мышки, иметь удобный поиск. А реализация в виде разных несвязанных приложений будет довольно далека от ожиданий пользователя.
То с чем работает аналитик выглядит примерно так:
Основные данные тут — это числовые «финансовые показатели», например, доход за 1 квартал 2020 года. Для простоты буду называть их дальше просто «числами». Как видно, почти никакой связи между числами в документе и в аналитической модели нет, все только в голове у аналитика. И работа с заполнением и поддержанием модели занимает часы поиска и перебивания чисел из документа в таблицы, а потом поиск ошибок ввода. Вместе этого мы хотели бы предложить пользователю привычные инструменты: «перетаскивание», вставка через клипборд и так далее, а также быстрый просмотр исходных данных.
Что у нас уже было
К моменту, когда мы начали реализацию интерактивного взаимодействия с Excel в виде, изложенном в этой статье, у нас уже была база данных на MongoDB, бэкэнд в виде REST API на .NET Core, фронтовое SPA на Angular и некоторые другие сервисы. Мы к этому моменту уже пробовали разные варианты интеграции в приложения электронных таблиц, в том числе и в Excel, и все они не пошли дальше MVP, но это тема отдельной статьи.
Связываем данные
В Excel существует два распространенных инструмента, с помощью которых можно решить задачу связывания данных в таблице с данными в системе: RTD (RealTimeData) и UDF (User-Defined Functions). Чистый RTD менее удобен для пользователя в плане синтаксиса и ограничивает гибкость решения. С помощью UDF можно создать кастомную функцию, которая будет работать привычным для Excel-пользователя образом. Ее можно использовать в других функциях, она понимает ссылки типа A1 или R1C1 и вообще ведет себя как надо. При этом никто не мешает использовать механизм RTD для обновления значения функции (что мы и сделали). UDF мы разрабатывали в виде Excel addin с использованием привычного нам C# и .NET Framework. Для ускорения разработки мы использовали библиотеку Excel DNA.
Кроме UDF наш addin реализует ribbon (панель инструментов) с настройками и некоторыми полезными функциями по работе с данными.
Добавляем интерактивность
Для передачи данных в Excel и налаживания интерактива мы разработали отдельный сервис, который предоставляет подключение по Websocket при помощи библиотеки SignalR и фактически является брокером для сообщений о событиях, которыми должны обмениваться «фронтовые» части системы в реальном времени. Он у нас называется Notification Service.
Вставляем данные в Excel
В нашем SPA мы подсвечиваем все числа, которые обнаружила система. Пользователь может выделять их, навигировать по ним и т.п. Для вставки данных мы реализовали 3 механизма, чтобы закрыть различные варианты использования:
- Перетаскивание (drag-and-drop)
- Автоматическая вставка по клику в SPA
- Копирование и вставка через клипборд
Когда пользователь инициирует drag’n’drop некоторого числа из SPA, для перетаскивания формируется ссылка с идентификатором этого числа из нашей системы (. ../unifiedId/005F5549CDD04F8000010405FF06009EB57C0D985CD001
). При вставке в Excel наш addin перехватывает событие вставки и парсит регэкспом вставляемый текст. При обнаружении валидной ссылки на лету подменяет ее на соответствующую формулу =ExrcP(...)
.
При клике на числе в SPA через Notification Service отправляется сообщение в addin, содержащее все необходимые данные для вставки формулы. Далее формула просто вставляется в текущую выделенную ячейку.
Эти способы хороши, когда пользователю нужно вставлять в свою модель по одному числу, но если надо перенести целую таблицу или ее часть, необходим другой механизм. Наиболее привычным для пользователей представляется копирование через клипборд. Однако этот способ оказался сложнее первых двух. Дело в том, что для удобства вставляемые данные должны быть представлены в нативном для Excel формате — OpenXML Spreadsheet. Наиболее просто это реализуется используя объектную модель Excel, то есть из addin’а. Поэтому процесс формирования клипборда у нас выглядит так:
- Пользователь выделяет область с числами в SPA
- Массив выделенных чисел передается на Notification Service
- Notification Service передает его в addin
- Addin формирует OpenXML и вставляет его в клипборд
- Пользователь может вставить данные из клипборда в любое место любой Excel-таблицы.
Несмотря на то, что данные проделывают довольно долгий путь, благодаря SignalR и RTD происходит это довольно быстро и абстрагированно от пользователя.
Распространяем данные
После того, как пользователь выбрал начальные данные для своей модели, их надо «распространить» все периоды (года, полугодия и кварталы), которые представляют интерес. Для этих целей одним из параметров нашей UDF является дата (период) данного числа (вспоминаем: «доход за 1 квартал 2020 года»). В Excel существует нативный механизм «распространения» формул, который позволяет заполнить ячейки той же формулой с учетом ссылок, заданных в параметрах. То есть вместо конкретной даты в формулу вставлена ссылка на нее, а далее пользователь «распространяет» ее на другие периоды, при этом в таблицу автоматически загружаются «те же» числа из других периодов.
А что это там за число?
Теперь у пользователя есть модель на несколько сотен строк и несколько десятков столбцов. И у него может возникнуть вопрос, что же там за число в ячейке L123? Чтобы получить ответ, у нас ему достаточно кликнуть на эту ячейку и в нашем SPA откроется тот самый отчет, на той самой странице, где записано кликнутое число, а число в отчете будет выделено. Вот так:
А если это не просто одно число из отчета, а результат некоторых вычислений на числах, взятых из отчета, то мы подсветим все числа, входящие в вычисляемое в Excel выражение. При этом не происходит загрузки всего приложения и подгрузки всех необходимых данных, как в случае перехода по ссылке.
В качестве заключения
Вот такая, на мой взгляд, нестандартная реализация взаимодействия между Excel и веб-приложением получилась довольно удобной для пользователя. Благодаря использованию Excel порог входа для пользователей из целевой аудитории довольно низкий. При этом мы получаем также всю мощь Excel по работе с числовыми данными. Сами данные всегда остаются связанными с источником, а также связанными во времени. Для целевых клиентов нет необходимости встраивать в бизнес-процесс работы с данными абсолютно новые внешние системы. Наше решение встраивается как дополнительный «инструмент» внутри Excel, что является стандартом де-факто для провайдеров финансовых данных.
Подобный архитектурный подход к интеграции веб-приложений с Microsoft Excel может быть применим и для решения других задач, требующих интерактива и сложных пользовательских интерфейсов при работе с числовыми и табличными данными.
Работа с excel на python — Как создать таблицу, загрузить или сохранить в файл
Pandas можно использовать для чтения и записи файлов Excel с помощью Python. Это работает по аналогии с другими форматами. В этом материале рассмотрим, как это делается с помощью DataFrame.
Помимо чтения и записи рассмотрим, как записывать несколько DataFrame в Excel-файл, как считывать определенные строки и колонки из таблицы и как задавать имена для одной или нескольких таблиц в файле.
Установка Pandas
Для начала Pandas нужно установить. Проще всего это сделать с помощью pip
.
Если у вас Windows, Linux или macOS:
pip install pandas # или pip3
В процессе можно столкнуться с ошибками ModuleNotFoundError
или ImportError
при попытке запустить этот код. Например:
ModuleNotFoundError: No module named 'openpyxl'
В таком случае нужно установить недостающие модули:
pip install openpyxl xlsxwriter xlrd # или pip3
Запись в файл Excel с python
Будем хранить информацию, которую нужно записать в файл Excel, в DataFrame
. А с помощью встроенной функции to_excel()
ее можно будет записать в Excel.
Сначала импортируем модуль pandas
. Потом используем словарь для заполнения DataFrame
:
Копировать Скопировано Use a different Browser
import pandas as pddf = pd.DataFrame({'Name': ['Manchester City', 'Real Madrid', 'Liverpool',
'FC Bayern München', 'FC Barcelona', 'Juventus'],
'League': ['English Premier League (1)', 'Spain Primera Division (1)',
'English Premier League (1)', 'German 1. Bundesliga (1)',
'Spain Primera Division (1)', 'Italian Serie A (1)'],
'TransferBudget': [176000000, 188500000, 90000000,
100000000, 180500000, 105000000]})Ключи в словаре — это названия колонок. А значения станут строками с информацией.
Теперь можно использовать функцию
to_excel()
для записи содержимого в файл. Единственный аргумент — это путь к файлу:Копировать Скопировано Use a different Browser
df.to_excel('./teams.xlsx')А вот и созданный файл Excel:
Стоит обратить внимание на то, что в этом примере не использовались параметры. Таким образом название листа в файле останется по умолчанию — «Sheet1». В файле может быть и дополнительная колонка с числами. Эти числа представляют собой индексы, которые взяты напрямую из DataFrame.
Поменять название листа можно, добавив параметр
sheet_name
в вызовto_excel()
:Копировать Скопировано Use a different Browser
df. to_excel('./teams.xlsx', sheet_name='Budgets', index=False)Также можно добавили параметр
index
со значениемFalse
, чтобы избавиться от колонки с индексами. Теперь файл Excel будет выглядеть следующим образом:Запись нескольких DataFrame в файл Excel
Также есть возможность записать несколько DataFrame в файл Excel. Для этого можно указать отдельный лист для каждого объекта:
Копировать Скопировано Use a different Browser
salaries1 = pd.DataFrame({'Name': ['L. Messi', 'Cristiano Ronaldo', 'J. Oblak'],
'Salary': [560000, 220000, 125000]})salaries2 = pd.DataFrame({'Name': ['K. De Bruyne', 'Neymar Jr', 'R. Lewandowski'],
'Salary': [370000, 270000, 240000]})salaries3 = pd.DataFrame({'Name': ['Alisson', 'M. ter Stegen', 'M. Salah'],
'Salary': [160000, 260000, 250000]})salary_sheets = {'Group1': salaries1, 'Group2': salaries2, 'Group3': salaries3}
writer = pd.ExcelWriter('./salaries. xlsx', engine='xlsxwriter')for sheet_name in salary_sheets.keys():
salary_sheets[sheet_name].to_excel(writer, sheet_name=sheet_name, index=False)writer.save()
Здесь создаются 3 разных DataFrame с разными названиями, которые включают имена сотрудников, а также размер их зарплаты. Каждый объект заполняется соответствующим словарем.
Объединим все три в переменной
salary_sheets
, где каждый ключ будет названием листа, а значение — объектомDataFrame
.Дальше используем движок
xlsxwriter
для создания объектаwriter
. Он и передается функцииto_excel()
.Перед записью пройдемся по ключам
salary_sheets
и для каждого ключа запишем содержимое в лист с соответствующим именем. Вот сгенерированный файл:Можно увидеть, что в этом файле Excel есть три листа: Group1, Group2 и Group3. Каждый из этих листов содержит имена сотрудников и их зарплаты в соответствии с данными в трех
DataFrame
из кода.Параметр движка в функции
to_excel()
используется для определения модуля, который задействуется библиотекой Pandas для создания файла Excel. В этом случае использовалсяxslswriter
, который нужен для работы с классомExcelWriter
. Разные движка можно определять в соответствии с их функциями.В зависимости от установленных в системе модулей Python другими параметрами для движка могут быть
openpyxl
(для xlsx или xlsm) и xlwt (для xls). Подробности о модулеxlswriter
можно найти в официальной документации.Наконец, в коде была строка
writer.save()
, которая нужна для сохранения файла на диске.Чтение файлов Excel с python
По аналогии с записью объектов
DataFrame
в файл Excel, эти файлы можно и читать, сохраняя данные в объектDataFrame
. Для этого достаточно воспользоваться функциейread_excel()
:Копировать Скопировано Use a different Browser
top_players = pd. read_excel('./top_players.xlsx')
top_players.head()Содержимое финального объекта можно посмотреть с помощью функции
head()
.Примечание:
Этот способ самый простой, но он и способен прочесть лишь содержимое первого листа.
Посмотрим на вывод функции
head()
:
Name | Age | Overall | Potential | Positions | Club | |
---|---|---|---|---|---|---|
0 | L. Messi | 33 | 93 | 93 | RW,ST,CF | FC Barcelona |
1 | Cristiano Ronaldo | 35 | 92 | 92 | ST,LW | Juventus |
2 | J. Oblak | 27 | 91 | 93 | GK | Atlético Madrid |
3 | K. De Bruyne | 29 | 91 | 91 | CAM,CM | Manchester City |
4 | Neymar Jr | 28 | 91 | 91 | LW,CAM | Paris Saint-Germain |
Pandas присваивает метку строки или числовой индекс объекту DataFrame
по умолчанию при использовании функции read_excel()
.
Это поведение можно переписать, передав одну из колонок из файла в качестве параметра index_col
:
Копировать Скопировано Use a different Browser
top_players = pd.read_excel('./top_players.xlsx', index_col='Name')
top_players.head()Результат будет следующим:
Name | Age | Overall | Potential | Positions | Club |
---|---|---|---|---|---|
L. Messi | 33 | 93 | 93 | RW,ST,CF | FC Barcelona |
Cristiano Ronaldo | 35 | 92 | 92 | ST,LW | Juventus |
J. Oblak | 27 | 91 | 93 | GK | Atlético Madrid |
K. De Bruyne | 29 | 91 | 91 | CAM,CM | Manchester City |
Neymar Jr | 28 | 91 | 91 | LW,CAM | Paris Saint-Germain |
В этом примере индекс по умолчанию был заменен на колонку «Name» из файла. Однако этот способ стоит использовать только при наличии колонки со значениями, которые могут стать заменой для индексов.
Чтение определенных колонок из файла Excel
Иногда удобно прочитать содержимое файла целиком, но бывают случаи, когда требуется получить доступ к определенному элементу. Например, нужно считать значение элемента и присвоить его полю объекта.
Это делается с помощью функции read_excel()
и параметра usecols
. Например, можно ограничить функцию, чтобы она читала только определенные колонки. Добавим параметр, чтобы он читал колонки, которые соответствуют значениям «Name», «Overall» и «Potential».
Для этого укажем числовой индекс каждой колонки:
Копировать Скопировано Use a different Browser
cols = [0, 2, 3]top_players = pd.read_excel('./top_players.xlsx', usecols=cols)
top_players.head()Вот что выдаст этот код:
Name | Overall | Potential | |
---|---|---|---|
0 | L. Messi | 93 | 93 |
1 | Cristiano Ronaldo | 92 | 92 |
2 | J. Oblak | 91 | 93 |
3 | K. De Bruyne | 91 | 91 |
4 | Neymar Jr | 91 | 91 |
Таким образом возвращаются лишь колонки из списка cols
.
В DataFrame
много встроенных возможностей. Легко изменять, добавлять и агрегировать данные. Даже можно строить сводные таблицы. И все это сохраняется в Excel одной строкой кода.
Рекомендую изучить DataFrame в моих уроках по Pandas.
Выводы
В этом материале были рассмотрены функции read_excel()
и to_excel()
из библиотеки Pandas. С их помощью можно считывать данные из файлов Excel и выполнять запись в них. С помощью различных параметров есть возможность менять поведение функций, создавая нужные файлы, не просто копируя содержимое из объекта DataFrame
.
Преобразование Excel в Google Sheets: пошаговое руководство По состоянию на 2022 год большинство пользователей электронных таблиц по-прежнему используют Microsoft Excel. Но Google Таблицы, улучшая совместную работу с электронными таблицами, все больше отнимают долю рынка у Excel.
Тем не менее, Excel остается доминирующим во многих секторах, особенно в традиционных отраслях. В результате даже команды, которые работают исключительно с электронными таблицами Google, в конечном итоге сталкиваются с электронными таблицами Excel.
Но это не значит, что эти команды должны работать вне Excel. Google Таблицы могут легко конвертировать файлы Excel в электронные таблицы Google. Это позволяет им оставаться на платформе электронных таблиц, которую они предпочитают.
Вот пошаговое руководство по лучшим способам преобразования файлов Excel в электронные таблицы Google.
Пошаговое видео: как конвертировать Excel в Google Sheets
Excel в Google Sheets: поддерживаемые типы файлов
С 2007 года форматом файлов Excel по умолчанию является файл . xlsx. До этого формат файла по умолчанию был .xls. Google Таблицы могут преобразовывать файлы .xls и .xlsx в электронные таблицы Google.
Краткое напоминание: файл .xls хранит данные электронной таблицы в одном двоичном файле. Но файл .xlsx основан на формате Open XML и хранит данные в виде отдельных файлов и папок в сжатом ZIP-архиве.
Google Таблицы также могут преобразовывать другие файлы электронных таблиц, созданные в Excel. К ним относятся:
- .xlsm
- .csv
- .xlt
- .ods
- .цв
- .вкладка
Как конвертировать файлы Excel в Google Таблицы
Вот полное пошаговое руководство по оптимизации процесса преобразования файлов Excel в электронные таблицы Google.
Преобразование файлов Excel с помощью коэффициента
Ниже приведен пошаговый обзор того, как подключить Excel к Google Таблицам с помощью коэффициента.
Шаг 1: Нажмите «Расширения» в верхнем меню Google Таблиц. Выберите Дополнения -> Получить дополнения. Это отображает Google Workspace Marketplace.
Поиск «Коэффициент». Щелкните приложение «Коэффициент».
Подтвердите запросы на установку Coefficient.
После завершения установки вернитесь в раздел «Расширения» в меню Google Таблиц. Теперь вы увидите, что коэффициент доступен в качестве надстройки.
Запустите приложение Коэффициент. Коэффициент будет работать на боковой панели вашего Google Sheet.
Шаг 2: Выберите «Импорт из…» на боковой панели «Коэффициент».
Выберите Excel в качестве источника данных.
Импорт данных Excel из One Drive, Google Drive, с URL-адреса или с локального жесткого диска.
Давайте импортируем файл .XLSX с One Drive. Во-первых, авторизуйте Coefficient для доступа к One Drive. Затем выберите файл Excel, который вы хотите импортировать.
Теперь выберите вкладку, диапазон ячеек и параметр заголовка, который вы хотите импортировать в файл Google Sheets.
Выберите столбцы и фильтры, которые вы хотите добавить.
Данные появятся в вашей электронной таблице Google. При импорте сохранится все форматирование исходного файла Excel.
Шаг 3: Коэффициент автоматизирует синхронизацию с вашим файлом Excel через определенные промежутки времени, поэтому данные вашего листа Excel постоянно обновляются в электронной таблице Google.
Импорт данных электронных таблиц, создание отчетов и анализ вручную? Избавьтесь от 45 % рабочей нагрузки, связанной с электронными таблицами, за 3 шага.
Automate Google Sheets
«Автоматизированный импорт данных и оповещения из моих электронных таблиц, наконец, обеспечивают подотчетность за счет понимания. Так много лишнего из моей жизни было устранено».
Руди Кулкарни, Strategy & Ops
Вы можете настроить автоматическое обновление данных ежечасно, еженедельно или ежемесячно.
Коэффициент также позволяет мгновенно обновлять данные, нажав кнопку «Обновить» в верхней части импортированного набора данных.
Наконец, держите свою команду в курсе, настроив Slack и уведомления по электронной почте о важных KPI и отчетах.
Теперь вся ваша команда может синхронизироваться автоматически.
Преобразование файла Excel с Google Диска
Вы можете загрузить файл Excel непосредственно на Google Диск, а затем преобразовать его в электронную таблицу Google за несколько шагов.
Сначала перейдите на главную страницу Google Диска. Нажмите Создать -> Загрузка файла .
Затем выберите файл Excel, который вы хотите загрузить со своего устройства.
Нажмите Откройте , и файл Excel будет загружен на Google Диск.
Нажмите на файл, чтобы открыть его в Google Таблицах.
Это позволит вам редактировать файл .xlsx с помощью интерфейса Google Sheets. Однако, если вы хотите преобразовать файл .xlsx в электронную таблицу Google, вы должны явно сохранить файл как таковой.
Для этого нажмите Файл -> Сохранить как Google Sheets .
И, вуаля — файл Excel конвертируется в электронную таблицу Google.
Автоматическое преобразование файлов Excel в таблицы Google
При правильных настройках вы можете вообще пропустить этот последний шаг, чтобы вам не приходилось вручную сохранять файл Excel как таблицу Google. Фактически вы можете автоматически преобразовывать любые загрузки на Google Диск в Документы Google (в данном случае — в Google Таблицы).
Вот как. Нажмите на шестерню на главной странице Google Диска. Затем нажмите Настройки.
В меню «Настройки» выберите Общие -> Преобразование загрузок и установите флажок. Это автоматически преобразует все ваши загруженные файлы в формат редактора Google Docs.
Отныне, когда вы загружаете файлы в формате Excel, они автоматически преобразуются в электронные таблицы Google, как только вы их открываете.
Преобразование файла Excel из электронной таблицы Google
Вы также можете конвертировать файлы Excel прямо из Google Таблиц. Это позволяет дополнять данные электронной таблицы Google данными из Excel.
Вот как это сделать. Откройте электронную таблицу Google и нажмите File -> Import .
Выберите файл Excel, который вы хотите импортировать. Вы можете выбрать файлы, которые уже загрузили на Google Диск, или загрузить новый файл.
Давайте загрузим новый файл. Щелкните вкладку Загрузить и выберите файл Excel на своем устройстве.
После загрузки файла Excel вы можете выбрать способ импорта электронной таблицы в раскрывающемся списке.
Вот краткое описание каждого варианта:
- Создать новую таблицу – Преобразование таблицы Excel в новую таблицу Google
- Вставить новый(е) лист(ы) – вставить электронную таблицу Excel как отдельный лист в текущую электронную таблицу Google
- Заменить электронную таблицу — полностью заменить текущую электронную таблицу электронной таблицей Excel
Выберем Вставить новый лист(ы) . Выберите Import Theme , чтобы сохранить тему электронной таблицы Excel. Теперь нажмите Импорт данных .
Данные Excel автоматически помещаются на отдельный лист в текущей электронной таблице.
Преобразование Google Sheets в Excel
Кроме того, используйте Google Sheets для простого преобразования электронных таблиц Google в файлы Excel. Просто нажмите File -> Download -> Microsoft Excel (.xlsx).
Это загрузит текущую электронную таблицу Google в виде файла Excel. Вы также можете скачать электронную таблицу в форматах файлов, совместимых с Excel, например в файлах .tsv и .csv.
Excel в Google Таблицы: каковы ограничения?
В большинстве случаев преобразование файла Excel в Google Таблицы не вызывает затруднений. Платформы относительно совместимы для большинства случаев использования, а Google Таблицы упрощают импорт файлов Excel.
Однако в некоторых сценариях преобразование из формата Excel в формат Google Таблиц не является идеальным, оптимальным или выполнимым. Вот некоторые ограничения, на которые следует обратить внимание:
- Размер электронной таблицы — Google Таблицы недавно увеличили максимальное количество ячеек в электронной таблице до 10 миллионов, что все еще намного меньше миллиардов ячеек, которые могут обрабатывать электронные таблицы Excel. Следовательно, вы не можете загружать файлы Excel с более чем 10 миллионами ячеек в Google Sheets.
- VBA – Google Таблицы не могут использовать Visual Basic для приложений (VBA). Макросы VBA в Excel не будут работать в электронных таблицах Google. Таблицы используют Google App Script (GAS) для написания сценариев.
- Ссылки на книги – Если в вашем файле Excel есть ссылки на другие книги, Google Таблицы не смогут получить или изменить их. Таблицы могут получить доступ только к файлам Excel, которые вы загрузили.
- Расширенное моделирование данных – Google Таблицы не могут реализовать некоторые расширенные возможности Excel по моделированию данных, включая Power Query и Power Pivot.
Теперь давайте посмотрим на обратное — преобразование электронных таблиц Google в файлы Excel. В этом случае вы не просто теряете совместную работу с Google Sheets. Excel также не поддерживает несколько функций в Google Таблицах, в том числе:
- ФОРМУЛА МАССИВА
- КОНКАТ
- ПРОДОЛЖИТЬ
- СТРАНАУНИКАЛЬНАЯ
- РАЗДЕЛИТЬ
- ЭКВ
- ФИЛЬТР
- ГУГЛФИНАНСЫ
- ГТ
- ГТД
- ИМПОРТДАННЫЕ
- ИМПОРТФИД
- ИМПОРТHTML
- ВАЖНЫЙ АССОРТИМЕНТ
- ИМПОРТXML
- ПРИСОЕДИНЯЙТЕСЬ
- ЗАПРОС
- СОРТА
- СПРКЛАЙН
- СПЛИТ
- TO_TEXT
- UNARY_PERCENT
- УНИКАЛЬНЫЙ
- УПЛУС
Если вы преобразуете электронную таблицу Google в .xlsx и она содержит одну из этих функций, вам, вероятно, придется переписать формулу в Excel, чтобы избежать поломок.
Преобразование Excel в Google Таблицы: работайте на платформе электронных таблиц, которую вы предпочитаете
Google Sheets упрощает преобразование файлов Excel в электронные таблицы Google. С другой стороны, Таблицы также позволяют легко загружать электронные таблицы Google в виде файлов Excel.
Хотя возможна несовместимость между Excel и Таблицами, большинство пользователей не столкнется с трудностями в процессе преобразования. Эта гибкость позволяет вам работать на платформе электронных таблиц, которую вы предпочитаете.
А с помощью коэффициента вы можете объединять данные в реальном времени из ваших бизнес-систем с файлами Excel, CSV и другими источниками в Google Таблицах. Попробуйте Coefficient бесплатно прямо сейчас, чтобы упростить анализ данных в Google Таблицах.
R xlsx package: краткое руководство по работе с файлами Excel в R — Easy Guides — Wiki
- Установка и загрузка пакета xlsx
- Чтение файла Excel
- Запись данных в файл Excel
- Простая функция R для быстрого экспорта нескольких наборов данных в одну книгу Excel
- Создайте и отформатируйте красивую книгу Excel
- Шаг 1/5. Создать новую книгу Excel
- Шаг 2/5. Определите некоторые стили ячеек для форматирования книги
- Шаг 3/5. Запись данных и графиков в рабочую тетрадь
- Создать новый лист в книге
- Добавить заголовок на лист
- Добавить таблицу на лист
- Добавить график на лист Excel
- Шаг 4/5. Сохраните книгу Excel на диск
- Шаг 5/5. Откройте и просмотрите результирующую книгу Excel
- Полный скрипт R для создания красивого отчета Excel
.
- Информация
Существует множество решений импорта и экспорт Файлы Excel с использованием программного обеспечения R . Различные способы подключения R к Excel уже обсуждались в нашей предыдущей статье [Основы R Excel: чтение, запись и форматирование файлов Excel с помощью R].
Пакет xlsx является одним из мощных пакетов R для чтения , записи и форматирования файлов Excel . Это решение на основе Java, доступное для Windows, Mac и Linux. Это работает для обоих Excel 2007 и Форматы файлов Excel 97/2000/XP/2003 (форматы файлов xls и xlsx ).
К сожалению, пакет xlsx не очень хорошо документирован.
Эта статья представляет собой краткое руководство по работе с файлами Excel в R с использованием пакета xlsx .
В этом руководстве вы узнаете, как использовать пакет xlsx для:
- Чтение и запись файлы Excel
- Добавление наборов данных и изображений (или графиков) на лист Excel
- Отформатируйте внешний вид рабочего листа Excel, задав форматы данных, шрифты, цвета и границы
install.packages("xlsx") library("xlsx")
Обратите внимание, что пакеты xlsx зависят от пакетов rJava и xlsxjars R.
Функции R read.xlsx() и read.xlsx2() можно использовать для чтение содержимого рабочего листа Excel в кадр данных R .
Разница между этими двумя функциями в том, что:
-
read.xlsx
сохраняет тип данных. Он пытается угадать тип класса переменной, соответствующей каждому столбцу на листе. Обратите внимание, что функция read.xlsx работает медленно для больших наборов данных (рабочий лист с более чем 100 000 ячеек). -
read.xlsx2
быстрее работает с большими файлами по сравнению с функцией read.xlsx.
Упрощенные форматы этих двух функций:
read.xlsx(file, sheetIndex, header=TRUE, colClasses=NA) read.xlsx2(file, sheetIndex, header=TRUE, colClasses="character")
- файл : путь к файлу для чтения
- sheetIndex : число, указывающее индекс листа для чтения; например: используйте sheetIndex=1 для чтения первого листа
- заголовок : логическое значение. Если TRUE, первая строка используется как имена переменных
- colClasses : вектор символов, который представляет класс каждого столбца
Примеры:
библиотека (xlsx) файл
NA. Доход населения Неграмотность Life.Exp Убийство 1 Алабама 3615 3624 2,1 69,05 15,1 2 Аляска 365 6315 1,5 69,31 11,3 3 Аризона 2212 4530 1,8 70,55 7,8 4 Арканзас 2110 3378 1,9 70,66 10,1 5 Калифорния 21198 5114 1,1 71,71 10,3 6 Колорадо 2541 4884 0,7 72,06 6,8
Обратите внимание, что функции read.xlsx и read.xlsx2 можно использовать для чтения файлов форматов .xls и .xlsx.
Функции R write.xlsx() и write.xlsx2() можно использовать для экспорта данных из R в рабочую книгу Excel . Обратите внимание, что write.xlsx2 обеспечивает более высокую производительность по сравнению с write.xlsx для очень больших фреймов данных (с более чем 100 000 ячеек).
Упрощенные форматы этих двух функций:
write.xlsx(x, файл, имя_листа="Лист1", col.names=TRUE, row.names=TRUE, append=FALSE) write.xlsx2 (x, файл, имя_листа = "Лист1", col.names=TRUE, row.names=TRUE, append=FALSE)
- x : data.frame для записи в рабочую книгу
- файл : путь к выходному файлу
- sheetName : строка символов, используемая для имени листа.
- col.names, row.names : логическое значение, указывающее, должны ли имена столбцов/имен строк x записываться в файл
- append : логическое значение, указывающее, следует ли добавлять x к существующему файлу.
Примеры:
библиотека (xlsx) write.xlsx(USArrests, file="myworkbook.xlsx", sheetName="Аресты в США")
Обратите внимание, что приведенный выше код сохраняет файл Excel в вашем текущем рабочем каталоге.
Чтобы добавить несколько наборов данных в одну и ту же книгу Excel, необходимо использовать аргумент append = TRUE . Это показано в следующем коде R:
# Записать первый набор данных в новую книгу write.xlsx(USArrests, file="myworkbook.xlsx", sheetName="США-АРЕСТЫ", append=FALSE) # Добавляем второй набор данных на новый лист write.xlsx(mtcars, файл="myworkbook.xlsx", имялиста="MTCARS", добавить=ИСТИНА) # Добавляем третий набор данных write.xlsx(Titanic, file="myworkbook.xlsx", имялиста="TITANIC", append=TRUE)
Как видно из изображения выше, можно добавить несколько наборов данных в один и тот же файл Excel. Однако метод очень повторяющийся. В следующем разделе вы найдете простую функцию для добавления различных типов данных за один вызов.
В этом разделе представлена функция R для простого экспорта нескольких объектов R в книгу Excel одним вызовом . Различные объекты (данные) записываются на разных листах одной и той же книги Excel. Имена объектов используются для именования различных листов.
R-код функции:
#++++++++++++++++++++++++++++++++ # xlsx. writeMultipleData #++++++++++++++++++++++++++++++++ # файл: путь к выходному файлу # ... : список данных для записи в книгу xlsx.writeMultipleData
Эта функция вдохновлена функцией, опубликованной на веб-сайте statmethods
Функция xlsx.writeMultipleData работает с фреймами данных, матрицами, временными рядами и таблицами.
Пример использования:
Используйте приведенный ниже код R для сохранения mtcars (фрейм данных), Titanic (таблица), AirPassengers (временной ряд) и state.x77 (матрица):
xlsx.writeMultipleData ("myworkbook.xlsx", mtcars, Титаник, AirPassengers, гос.x77)
Функция write.xlsx() полезна, когда вы хотите просто записать data.frame в файл xlsx. Цель этого раздела — показать вам, как создать хороший отчет Excel, содержащий отформатированную таблицу данных и графики.
Необходимо выполнить следующие шаги:
- Создать книгу
- Определить некоторые стили ячеек : Шрифт цвет и размер, текст выравнивание , граница и формат данных , …
- Запишите таблицу в электронную таблицу Excel, используя стили, определенные на шаге 2.
- Сохранить книгу в файл
- Открыть и просмотреть результирующую книгу
В следующих разделах я покажу вам шаг за шагом, как изменить внешний вид рабочего листа Excel в R. Обратите внимание, что форматирование рабочих листов Excel с использованием пакета xlsx R требует жесткого кодирования. Вот почему я недавно реализовал пакет r2excel , который зависит от xlsx и предоставляет простые в использовании функции для быстрого импорта данных из файлов Excel и создания хорошего отчета Excel. Пакет r2excel описан в моем предыдущем посте: Основы R Excel: чтение, запись и форматирование файлов Excel с помощью R
Шаг 1/5. Создать новую книгу Excel
Можно использовать функцию createWorkbook() . Он работает с форматами файлов .xls и .xlsx .
# создать новую книгу для выходных данных # возможные значения типа: "xls" и "xlsx" вб
Этап 2/5.
Определите некоторые стили ячеек для форматирования книги
Мы определим некоторые стили ячеек для изменения:
- внешний вид заголовка листа
- появление имен строк и столбцов таблицы данных
- выравнивание текста для имен столбцов таблицы
- границы ячеек вокруг имен столбцов
Функция R CellStyle() может использоваться для создания стилей ячеек. Упрощенный формат функции:
CellStyle(wb, dataFormat=NULL, выравнивание=NULL, border=NULL, fill=NULL, font=NULL)
- wb : объект рабочей книги, возвращенный createWorkbook или loadWorkbook.
- dataFormat : объект DataFormat
- выравнивание : выравнивание объект
- граница : граница объект
- шрифт : шрифт объект
# Определить некоторые стили ячеек #++++++++++++++++++++++ # Стили заголовков и подзаголовков TITLE_STYLE
- wb : объект рабочей книги, возвращенный
createWorkbook
илиloadWorkbook
. - Основные аргументы функции Font() :
- цвет : цвет шрифта
- heightInPoints : размер шрифта . Обычные значения: 10, 12, 14 и т. д.
- isBold, isItalic : логическое указание, должен ли шрифт быть полужирный или курсив
- подчеркивание : целое число, определяющее толщину подчеркивания . Возможные значения: 0, 1, 2.
- имя : используемый шрифт; например: «Новый курьер».
- Основные аргументы функции Alignment() :
- wrapText : логическое указание, следует ли переносить текст.
- горизонтальное : горизонтальное выравнивание . Возможные значения: «ALIGN_CENTER», «ALIGN_JUSTIFY», «ALIGN_LEFT», «ALIGN_RIGHT».
- вертикальное : вертикальное выравнивание . Возможные значения: «VERTICAL_BOTTOM», «VERTICAL_CENTER», «VERTICAL_JUSTIFY», «VERTICAL_TOP»
- поворот : числовое значение, указывающее, на сколько градусов вы хотите повернуть текст в ячейке на . Значение по умолчанию: 0,
.
- Основные аргументы функции Border() :
- цвет : цвет границы ; например: цвет = «красный» или цвет = «#FF0000»
- позиция : граница позиция . Допустимые значения: «НИЖНИЙ», «ЛЕВЫЙ», «ВЕРХ», «ПРАВЫЙ»
- ручка : стиль ручки. Допустимые значения: «BORDER_DASH_DOT», «BORDER_DASH_DOT_DOT», «BORDER_DASHED», «BORDER_DOTTED», «BORDER_DOUBLE», «BORDER_HAIR», «BORDER_MEDIUM», «BORDER_MEDIUM_DASH_DOT», «BORDER_MEDIUM_DASH_DOT_DOT», «BORDER_MEDIUM_DASHED», « BORDER_NONE», «BORDER_SLANTED_DASH_DOT «, «ГРАНИЦА_ТОЛЩАЯ», «ГРАНИЦА_ТОНКАЯ».
Шаг 3/5. Запись данных и графиков в книгу
Создание нового листа в книге
Чтобы добавить данные, первым шагом является создание листа в книге для хранения данных. Это можно сделать с помощью функции creatSheet() :
# Создать новый лист в рабочей книге лист
Добавить заголовок на лист
Чтобы добавить заголовок, выполните следующие действия:
- создайте новую строку
- создайте в этой строке ячейку, содержащую заголовок.
- установить значение ячейки.
Чтобы упростить код R, я написал вспомогательную функцию для добавления заголовка:
#++++++++++++++++++++++++++ # Вспомогательная функция для добавления заголовков #++++++++++++++++++++++++++++ # -sheet : объект листа, содержащий заголовок # - rowIndex : числовое значение, указывающее строку для #содержать заголовок # - title : текст для использования в качестве заголовка # - titleStyle : объект стиля для использования в заголовке xlsx.addTitle
Скопируйте и вставьте код функции xlsx.addTitle в консоль R, прежде чем продолжить.
# Добавить заголовок xlsx.addTitle(лист, rowIndex=1, title="Факты о штате США", titleStyle = TITLE_STYLE) # Добавить подзаголовок xlsx. addTitle (лист, rowIndex = 2, title="Наборы данных, относящиеся к 50 штатам США.", titleStyle = SUB_TITLE_STYLE)
Добавить таблицу на лист
Функция addDataframe() может использоваться для добавления таблицы на новый лист.
state.x77
таблица данных используется в следующем примере:
head(state.x77)
Доход населения Неграмотность Опыт жизни Убийство HS Grad Frost Area Алабама 3615 3624 2,1 69,05 15,1 41,3 20 50708 Аляска 365 6315 1,5 69,31 11,3 66,7 152 566432 Аризона 2212 4530 1,8 70,55 7,8 58,1 15 113417 Арканзас 2110 3378 1,9 70,66 10,1 39,9 65 51945 Калифорния 21198 5114 1,1 71,71 10,3 62,6 20 156361 Колорадо 2541 4884 0,7 72,06 6,8 63,9166 103766
# Добавить стол addDataFrame(state.x77, лист, startRow=3, startColumn=1, colnamesStyle = TABLE_COLNAMES_STYLE, rownamesStyle = TABLE_ROWNAMES_STYLE) # Изменить ширину столбца setColumnWidth(лист, colIndex=c(1:ncol(state. x77)), colWidth=11)
- Аргументы для функции addDataFrame() :
- startRow , startColumn : числовое значение, указывающее начальную строку и столбец
- colnameStyle , rownameStyle : объект CellStyle для настройки заголовка таблицы и имен строк
- Аргументы для функции setColumnWidth() :
- colIndex : числовой вектор, указывающий столбцы, размер которых вы хотите изменить.
- colWidth : ширина столбца
Добавить график на лист Excel
# создать график png png ("boxplot.png", высота = 800, ширина = 800, разрешение = 250, размер точек = 8) boxplot (количество ~ распыление, данные = InsectSprays, столбец = "синий") dev.off() # Создаем новый лист, содержащий график лист
Этап 4/5. Сохраняем книгу Excel на диск
# Сохраняем книгу в файл
saveWorkbook(wb, "r-xlsx-report-example.