Как получить данные из файла excel
В сегодняшней статье я хотел бы, как можно подробнее, рассмотреть интеграцию приложений Python и MS Excel. Данные вопрос может возникнуть, например, при создании какой-либо системы онлайн отчетности, которая должна выгружать результаты в общепринятый формат ну или какие-либо другие задачи. Также в статье я покажу и обратную интеграцию, т.е. как использовать функцию написанную на python в Excel, что также может быть полезно для автоматизации отчетов.
Работаем с файлами MS Excel на Python
Для работы с Excel файлами из Python мне известны 2 варианта:
Использование библиотек
Итак, первый метод довольно простой и хорошо описан. Например, есть отличная статья для описания работы c xlrd, xlwt, xlutils. Поэтому в данном материале я приведу небольшой кусок кода с их использованием.
Для начала загрузим нужные библиотеки и откроем файл xls на чтение и выберем
нужный лист с данными:
Теперь давайте посмотрим, как считать значения из нужных ячеек:
Как видно чтение данных не составляет труда. Теперь запишем их в другой файл. Для этого создам новый excel файл с новой рабочей книгой:
Запишем в новый файл полученные ранее данные и сохраним изменения:
Из примера выше видно, что библиотека xlrd отвечает за чтение данных, а xlwt — за запись, поэтому нет возможности внести изменения в уже созданную книгу без ее копирования в новую. Кроме этого указанные библиотеки работают только с файлами формата xls (Excel 2003) и у них нет поддержки нового формата xlsx (Excel 2007 и выше).
Чтобы успешно работать с форматом xlsx, понадобится библиотека openpyxl. Для демонстрации ее работы проделаем действия, которые были показаны для предыдущих библиотек.
Для начала загрузим библиотеку и выберем нужную книгу и рабочий лист:
Как видно из вышеприведенного листинга сделать это не сложно. Теперь посмотрим как можно считать данные:
Отличие от прошлых библиотек в том, что openpyxl дает возможность отображаться к ячейкам и последовательностям через их имена, что довольно удобно и понятно при чтении программы.
Теперь посмотрим как нам произвести запись и сохранить данные:
Из примера видно, что запись, тоже производится довольно легко. Кроме того, в коде выше, можно заметить, что openpyxl кроме имен ячеек может работать и с их индексами.
К недостаткам данной библиотеки можно отнести, то что, как и в предыдущем примере, нет возможности сохранить изменения без создания новой книги.
Как было показано выше, для более менее полноценной работы с excel файлами, в данном случае, нужно 4 библиотеки, и это не всегда удобно. Кроме этого, возможно нужен будет доступ к VBA (допустим для какой-либо последующей обработки) и с помощью этих библиотек его не получить.
Однако, работа с этими библиотеками достаточно проста и удобна для быстрого создания Excel файлов их форматирования, но если Вам надо больше возможностей, то следующий подпункт для Вас.
Работа с com-объектом
В своих отчетах я предпочитаю использовать второй способ, а именно использование файла Excel через com-объект с использованием библиотеки win32com. Его преимуществом, является то, что вы можете выполнять с файлом все операции, которые позволяет делать обычный Excel с использованием VBA.
Проиллюстрируем это на той же задаче, что и предыдущие примеры.
Для начала загрузим нужную библиотеку и создадим COM объект.
Теперь мы можем работать с помощью объекта Excel мы можем получить доступ ко всем возможностям VBA. Давайте, для начала, откроем любую книгу и выберем активный лист. Это можно сделать так:
Давайте получим значение первой ячейки и последовательности:
Как можно заметить, мы оперируем здесь функциями чистого VBA. Это очень удобно если у вас есть написанные макросы и вы хотите использовать их при работе с Python при минимальных затратах на переделку кода.
Посмотрим, как можно произвести запись полученных значений:
Из примера видно, что данные операции тоже довольно просто реализовываются. Кроме этого, можно заметить, что изменения мы сохранили в той же книге, которую открыли для чтения, что достаточно удобно.
Однако, внимательный читатель, обратит внимание на переменную i, которая инициализируется не 0, как принято python, а 1. Это связано с тем, что мы работаем с индексами ячеек как из VBA, а там нумерация начинается не с 0, а с 1.
На этом закончим разбор способов работы с excel файлами в python и перейдем к обратной задаче.
Вызываем функции Python из MS Excel
Может возникнуть такая ситуация, что у вас уже есть какой-либо функция, которая обрабатывает данные на python, и нужно перенести ее функциональность в Excel. Конечно же можно переписать ее на VBA, но зачем?
Для использования функций python в Excel есть прекрасная надстройка ExcelPython. С ее помощью вы сможете вызывать функции написанные на python прямо из Excel, правда придется еще написать небольшую обертку на VBA, и все это будет показано ниже.
Итак, предположим у нас есть функция, написанная на python, которой мы хотим воспользоваться:
На вход ей подается список, состоящий из списков, это одно из условий, которое должно выполняться для работы данной функции в Excel.
Сохраним функцию в файле plugin.py и положим его в ту же директорию, где будет лежать наш excel файл, с которым мы будем работать.
Теперь установим ExcelPython. Установка происходит через запуск exe-файла и не вызывает затруднений.
Когда все приготовления выполнены, открываем тестовый файл excel и вызовем редактор VBA (Alt+F11). Для работы с вышеуказанной надстройкой необходимо ее подключить, через Tools->References, как показано на рисунке:
Ну что же, теперь можно приступить к написанию функции-обертки для нашего Python-модуля plugin.py. Выглядеть она будет следующим образом:
Итак, что же происходит в данной функции?
Для начала, с помощью PyModule , мы подключаем нужный модуль. Для этого в качестве параметров ей передается имя модуля без расширения, и путь до папки в которой он находится. На выходе работы PyModule мы получаем объект для работы с модулем.
Затем, с помощью PyCall , вызываем нужную нам функцию из указанного модуля. В качестве параметров PyCall получает следующее:
- Объект модуля, полученный на предыдущем шаге
- Имя вызываемой функции
- Параметры, передаваемые функции (передаются в виде списка)
Теперь, чтобы убедиться в работоспособности нашей связки, вызовем нашу свежеиспеченую функцию на листе в Excel:
Как видно из рисунка все отработало правильно.
Надо отметить, что в данном материале используется старая версия ExcelPython, и на GitHub'e автора доступна новая версия.
Заключение
В качестве заключения, надо отметить, примеры в данной статье самые простые и для более глубоко изучения данных методов, я рекомендую обратиться к
документации по нужным пакетам.
Также хочу заметить, что указанные пакеты не являются единственными и в статье опущено рассмотрение, таких пакетов как xlsxwriter для генерации excel файлов или xlwings, который может работать с Excel файлами «на лету», а также же PyXLL, который выполняет аналогичные функции ExcelPython.
Кроме этого в статье я попытался несколько обобщить разборасанный по сети материал, т.к. такие вопросы часто фигурируют на форумах и думаю некоторым будет полезно иметь, такую «шпаргалку» под рукой.
Сегодня мы поговорим о получении данных из закрытых файлов Excel. В одном из предыдущих уроков рассматривалась та же задача, но с применением макроса. Теперь посмотрим как обойтись без него.
Способ №1
Воспользуемся строкой формул, это самый простой и понятный способ действий. Представим картину: есть папка с несколькими книгами Excel; в каждой книге несколько листов, они заполнены данными; эти данные нужно собрать в один общий файл.
Итак, книга "Итог" должна собрать из файла "Магазины" наименование магазина за определённый месяц и из файла "Продажи" сумму продаж за каждый месяц по магазинам.
Взглянем в строчку формул книги "Итого" на листе "январь".
Весь фокус заключается в чём - необходимо путь до папки с файлом заключить в кавычки, имя файла заключить в квадратные скобки, далее через знак восклицания указать адрес ячейки откуда хотим забрать данные.
Точно так же и с именем магазина, который подгружается из файла "Магазины".
Итог: необходимо правильно прописать имена файлов и их пути.
Способ №2
Напомню - если у вас Excel версии 2013 придётся установить этот модуль дополнительно. Если Excel 2016 он уже будет в комплекте.
Переходим на вкладку "Power Query", нажимаем кнопку "Из файла" и выбираем вариант "Из файла Excel".
В появившемся окне выбираем файл из которого нужно выгрузить информацию.
Далее выберем информацию с каких листов нужно загрузить. Щёлкаем галку "Несколько элементов" и отмечаем листы.
Нажимаем кнопку "Загрузить в" и выбираем "Таблица", будет выгружена информация на новые листы. Если хотим всё на один лист - придётся по очереди выгружать каждый лист.
Каждый лист загрузится в таблицу "Итог" и можно будет оперировать данными как угодно.
Наведя курсор в часть запроса, можно будет увидеть подробную статистику по элементу Power Query.
Вот такие два способа получения данных из закрытых файлов Excel. Всем удачи!
Существуют различные способы переноса данных из книги Excel в базы данных Access. Можно скопировать данные с открытого листа и вставить их в таблицу Access, импортировать лист в новую или существующую таблицу либо связать лист с базой данных Access.
В этой статье приведено подробное описание процедуры импорта или связывания данных Excel с классическими базами данных Access.
В этой статье
Общее представление об импорте данных из Excel
Если требуется сохранить данные одного или нескольких листов Excel в Access, следует импортировать содержимое листа в новую или существующую базу данных Access. При импорте данных в Access создается их копия в новой или существующей таблице, а исходный лист Excel не изменяется.
Стандартные сценарии импорта данных Excel в Access
Опытному пользователю Excel требуется использовать Access для работы с данными. Для этого необходимо переместить данные из листов Excel в одну или несколько новых таблиц Access.
В отделе или рабочей группе используется Access, но иногда данные поступают в формате Excel, и их необходимо объединять с базами данных Access. Требуется выполнить импорт полученных листов Excel в базу данных.
Пользователь применяет Access для управления данными, однако получает еженедельные отчеты от остальных участников команды в виде книг Excel. Требуется организовать процесс импорта таким образом, чтобы данные импортировались в базу данных каждую неделю в заданное время.
Первый импорт данных из Excel
Сохранить книгу Excel в виде базы данных Access невозможно. В Excel не предусмотрена функция создания базы данных Access с данными Excel.
При открытии книги Excel в Access (для этого следует открыть диалоговое окно Открытие файла, выбрать в поле со списком Тип файлов значение Файлы Microsoft Office Excel и выбрать файл) создается ссылка на эту книгу, но данные из нее не импортируются. Связывание с книгой Excel кардинально отличается от импорта листа в базу данных. Дополнительные сведения о связывании см. ниже в разделе Связывание с данными Excel.
Импорт данных из Excel
В этом разделе описано, как подготовиться к операции импорта, выполнить ее и как сохранить параметры импорта в виде спецификации для повторного использования. Помните, что данные можно одновременно импортировать только из одного листа. Импортировать все данные из книги за один раз невозможно.
Подготовка листа
Найдите исходный файл и выделите лист с данными, которые требуется импортировать в Access. Если необходимо импортировать лишь часть данных листа, можно задать именованный диапазон, содержащий только те ячейки, которые требуется импортировать.
Определение именованного диапазона (необязательно)
Перейдите в Excel и откройте лист, данные из которого нужно импортировать.
Выделите диапазон ячеек, содержащих данные, которые необходимо импортировать.
Щелкните выделенный диапазон правой кнопкой мыши и выберите пункт Имя диапазона или Определить имя.
В диалоговом окне Создание имени укажите имя диапазона в поле Имя и нажмите кнопку ОК.
Имейте в виду, что в ходе одной операции импорта можно импортировать лишь один лист. Чтобы импортировать данные нескольких листов, операцию импорта следует повторить для каждого листа.
Просмотрите исходные данные и выполните необходимые действия в соответствии с приведенной ниже таблицей.
Число исходных столбцов, которые необходимо импортировать, не должно превышать 255, т. к. Access поддерживает не более 255 полей в таблице.
Пропуск столбцов и строк
В исходный лист или именованный диапазон рекомендуется включать только те строки и столбцы, которые требуется импортировать.
Смещ_по_строкам В ходе операции импорта невозможно фильтровать или пропускать строки.
Столбцы. В ходе операции экспорта невозможно пропускать столбцы, если данные добавляются в существующую таблицу.
Убедитесь, что ячейки имеют табличный формат. Если лист или именованный диапазон включает объединенные ячейки, их содержимое помещается в поле, соответствующее крайнему левому столбцу, а другие поля остаются пустыми.
Пустые столбцы, строки и ячейки
Удалите все лишние пустые столбцы и строки из листа или диапазона. При наличии пустых ячеек добавьте в них отсутствующие данные. Если планируется добавлять записи к существующей таблице, убедитесь, что соответствующие поля таблицы допускают использование пустых (отсутствующих или неизвестных) значений. Поле допускает использование пустых значений, если свойство Обязательное поле (Required) имеет значение Нет, а свойство Условие на значение (ValidationRule) не запрещает пустые значения.
Чтобы избежать ошибок при импорте, убедитесь, что каждый исходный столбец содержит данные одного типа в каждой строке. Access сканирует первые восемь исходных строк, чтобы определить тип данных полей таблицы. Настоятельно рекомендуем убедиться в том, что первые восемь исходных строк не смешивают значения с разными типами данных ни в каких столбцах. В противном случае Access может не назначить столбецу правильный тип данных.
Рекомендуется также отформатировать все исходные столбцы в Excel и назначить им определенный формат данных перед началом операции импорта. Форматирование является необходимым, если столбец содержит значения с различными типами данных. Например, столбец "Номер рейса" может содержать числовые и текстовые значения, такие как 871, AA90 и 171. Чтобы исключить отсутствующие или неверные значения, выполните указанные ниже действия.
Щелкните заголовок столбца правой кнопкой мыши и выберите пункт Формат ячеек.
На вкладке Числовой в группе Категория выберите формат. Для столбца "Номер рейса" лучше выбрать значение Текстовый.
Если исходные столбцы отформатированы, но все же содержат смешанные значения в строках, следующих за восьмой строкой, в ходе операции импорта значения могут быть пропущены или неправильно преобразованы. Сведения о разрешении этих вопросов см. в разделе Разрешение вопросов, связанных с отсутствующими и неверными значениями.
Если первая строка листа или именованного диапазона содержит имена столбцов, в Access можно указать, что данные первой строки должны рассматриваться в ходе операции импорта как имена полей. Если исходный лист или диапазон не содержит имен, рекомендуется добавить их в исходные данные до операции импорта.
Примечание: Если планируется добавить данные в существующую таблицу, убедитесь, что имя каждого столбца в точности соответствует имени поля. Если имя столбца отличается от имени соответствующего поля в таблице, операция импорта завершится неудачей. Чтобы просмотреть имена полей, откройте таблицу в Access в режиме конструктора.
Закройте исходную книгу, если она открыта. Если исходный файл остается открытым в ходе операции импорта, могут возникнуть ошибки преобразования данных.
Подготовка конечной базы данных
Откройте базу данных Access, в которой будут храниться импортируемые данные. Убедитесь, что база данных доступна не только для чтения и что есть права на ее изменение.
Если ни одна из существующих баз данных не подходит для хранения импортируемых данных, создайте пустую базу данных. Для этого выполните указанные ниже действия.
Откройте вкладку Файл, нажмите кнопку Создать и выберите пункт Пустая база данных.
Перед началом операции импорта следует определить, в какой таблице будут храниться данные: в новой или существующей.
Создание новой таблицы. Если необходимо сохранить данные в новой таблице, в Access создается таблица, в которую добавляются импортируемые данные. Если таблица с указанным именем уже существует, содержимое существующей таблицы перезаписывается импортируемыми данными.
Добавление в существующую таблицу. При добавлении данных в существующую таблицу строки из листа Excel добавляются в указанную таблицу.
Следует помнить, что ошибки в ходе операции добавления зачастую объясняются тем, что исходные данные не соответствуют структуре и параметрам полей в конечной таблице. Чтобы избежать таких ошибок, откройте таблицу в режиме конструктора и проверьте указанные ниже параметры.
Первая строка. Если первая строка исходного листа или диапазона не содержит заголовки столбцов, убедитесь, что расположение и тип данных каждого столбца соответствуют нужному полю таблицы. Если же первая строка содержит заголовки столбцов, совпадение порядка следования столбцов и полей необязательно, но имя и тип данных каждого столбца должны в точности совпадать с именем и типом данных соответствующего поля.
Отсутствующие или лишние поля. Если одно или несколько полей исходного листа отсутствуют в конечной таблице, их следует добавить до начала операции импорта. Если же таблица содержит поля, которые отсутствуют в исходном файле, их не требуется удалять из таблицы при условии, что они допускают использование пустых значений.
Совет: Поле допускает использование пустых значений, если его свойство Обязательное поле (Required) имеет значение Нет, а свойство Условие на значение (ValidationRule) не запрещает пустые значения.
Индексированные поля. Если свойство Индексировано поля таблицы имеет значение Да (без повторов), соответствующий столбец исходного листа или диапазона должен содержать уникальные значения.
Для выполнения операции импорта перейдите к указанным ниже действиям.
Запуск операции импорта
Расположение мастера импорта или связывания зависит от используемой версии Access. Выполните действия, которые соответствуют вашей версии Access.
Если вы используете последнюю версию Access или Access 2019, доступную по подписке на Microsoft 365, на вкладке "Внешние данные" в группе "Импорт & Связь" нажмите кнопку "Новый источник данных > из файла > Excel".
Если вы используете Access 2016, Access 2013 или Access 2010, на вкладке Внешние данные в группе Импорт и связи нажмите кнопку Excel.
Примечание: Вкладка Внешние данные доступна только в том случае, если открыта база данных.
В диалоговом окне Внешние данные - Электронная таблица Excel в поле Имя файла укажите имя файла Excel, содержащего данные, которые необходимо импортировать.
Чтобы указать импортируемый файл, нажмите кнопку Обзор и воспользуйтесь диалоговым окном Открытие файла.
Укажите способ сохранения импортируемых данных.
Чтобы сохранить данные в новой таблице, выберите вариант Импортировать данные источника в новую таблицу в текущей базе данных. Позднее будет предложено указать имя этой таблицы.
Чтобы добавить данные в существующую таблицу, выберите параметр Добавить копию записей в конец таблицы и выберите таблицу в раскрывающемся списке. Этот параметр недоступен, если база данных не содержит таблиц.
Сведения о связывании с источником данных путем создания связанной таблицы см. ниже в разделе Связывание с данными Excel.
Будет запущен мастер импорта электронных таблиц, который поможет выполнить импорт. Перейдите к дальнейшим действиям.
Использование мастера импорта электронных таблиц
На первой странице мастера выберите лист, содержащий данные, которые необходимо импортировать, и нажмите кнопку Далее.
На второй странице мастера щелкните элемент листы или именованные диапазоны, выберите лист или именованный диапазон, который необходимо импортировать, и нажмите кнопку Далее.
Если первая строка исходного листа или диапазона содержит имена полей, выберите вариант Первая строка содержит заголовки столбцов и нажмите кнопку Далее.
Если данные импортируются в новую таблицу, заголовки столбцов используются в Access в качестве имен полей в таблице. Эти имена можно изменить в ходе операции импорта или после ее завершения. Если данные добавляются к существующей таблице, убедитесь, что заголовки столбцов исходного листа в точности соответствуют именам полей конечной таблицы.
Если данные добавляются к существующей таблице, перейдите к действию 6. Если данные добавляются в новую таблицу, выполните оставшиеся действия.
Мастер предложит просмотреть свойства полей. Щелкните столбец в нижней части страницы, чтобы отобразить свойства нужного поля. При необходимости выполните указанные ниже действия.
Просмотрите и измените имя и тип данных конечного поля.
Чтобы создать индекс для поля, присвойте свойству Индексировано (Indexed) значение Да.
Чтобы пропустить весь исходный столбец, установите флажок Не импортировать (пропустить) поле.
Настроив параметры, нажмите кнопку Далее.
На следующем экране задайте первичный ключ для таблицы. При выборе варианта автоматически создать ключ Access добавляет поле счетчика в качестве первого поля конечной таблицы и автоматически заполняет его уникальными значениями кодов, начиная с 1. После этого нажмите кнопку Далее.
Сведения о том, как запустить сохраненную спецификацию импорта или экспорта, см. в статье Запуск сохраненной спецификации импорта или экспорта.
Сведения о том, как запланировать выполнение задач импорта и связывания в определенное время, см. в статье Планирование спецификации импорта или экспорта.
Разрешение вопросов, связанных с отсутствующими и неверными значениями
Откройте целевую таблицу в режиме таблицы, чтобы убедиться, что в таблицу были добавлены все данные.
Откройте таблицу в режиме конструктора, чтобы проверить типы данных и другие свойства полей.
В приведенной ниже таблице описаны действия по разрешению проблем, связанных с отсутствующими или неверными значениями.
Графические элементы, такие как логотипы, диаграммы и рисунки, не импортируются. Их следует добавить в базу данных вручную после завершения операции импорта.
Импортируются результаты вычисляемого столбца или ячейки, но не базовая формула. В ходе операции импорта можно указать тип данных, совместимый с результатами формулы, например числовой.
Значения TRUE или FALSE и -1 или 0
Если исходный лист или диапазон включает столбец, который содержит только значения TRUE или FALSE, в Access для этого столбца создается логическое поле, в которое вставляется значение -1 или 0. Если же исходный лист или диапазон включает столбец, который содержит только значения -1 и 0, в Access для этого столбца по умолчанию создается числовое поле. Чтобы избежать этой проблемы, можно изменить в ходе импорта тип данных поля на логический.
При импорте данных в новую или существующую таблицу приложение Access не поддерживает многозначные поля, даже если исходный столбец содержит список значений, разделенных точками с запятой (;). Список значений обрабатывается как одно значение и помещается в текстовое поле.
В случае усечения данных в столбце таблицы Access попытайтесь увеличить ширину столбца в режиме таблицы. Если не удается решить проблему с помощью этого способа, это означает, что объем данных в числовом столбце Excel слишком велик для конечного поля в Access. Например, в базе данных Access свойство FieldSize конечного поля может иметь значение Байт, а исходные данные могут содержать значение больше 255. Исправьте значения в исходном файле и повторите операцию импорта.
Чтобы обеспечить правильное отображение значений в режиме таблицы, может потребоваться изменить свойство Формат некоторых полей в режиме конструктора. Ниже приведены примеры.
После завершения импорта в логическом поле в режиме таблицы отображаются значения -1 и 0. Чтобы устранить эту проблему, необходимо после завершения импорта изменить значение свойства Формат этого поля на Да/Нет для отображения флажков.
Даты в длинном и среднем форматах отображаются в Access как краткие даты. Чтобы устранить эту проблему, откройте конечную таблицу в Access в режиме конструктора и измените свойство Формат поля даты на Длинный формат даты или Средний формат даты.
Примечание: Если исходный лист содержит элементы форматирования RTF, например полужирный шрифт, подчеркивание или курсив, текст импортируется без форматирования.
Повторяющиеся значения (нарушение уникальности ключа)
Импортируемые записи могут содержать повторяющиеся значения, которые невозможно сохранить в поле первичного ключа в конечной таблице или в поле, для которого свойству Индексировано присвоено значение Да (без повторов). Удалите повторяющиеся значения в исходном файле и повторите операцию импорта.
Значения дат, сдвинутые на 4 года
Значения полей дат, импортированных с листа Excel, оказываются сдвинуты на четыре года. В Excel для Windows используется система дат 1900, в которой даты представляются целыми числами от 1 до 65 380, соответствующими датам от 1 января 1900 г. до 31 декабря 2078 г. В Excel для Macintosh используется система дат 1904, в которой даты представляются целыми числами от 0 до 63 918, соответствующими датам от 1 января 1904 г. до 31 декабря 2078 г.
Прежде чем импортировать данные, измените систему дат для книги Excel или выполните после добавления данных запрос на обновление, используя выражение [имя поля даты] + 1462 для корректировки дат.
Отформатируйте исходные столбцы.
Переместите строки таким образом, чтобы первые восемь строк каждого столбца не содержали значения с разными типами данных.
В ходе операции импорта выберите подходящий тип данных для каждого поля. Если тип данных указан неправильно, после завершения операции весь столбец может содержать пустые или неверные значения.
Описанные выше действия позволяют свести к минимуму количество пустых значений. В приведенной ниже таблице представлены ситуации, в которых пустые значения все же будут появляться.
Microsoft Excel является одним из наиболее широко используемых бизнес-приложений. Оно также является одним из наиболее распространенных способов получения данных в Power BI.
Какие типы книг поддерживает Power BI?
Power BI поддерживает импорт данных и подключение к книгам, созданным в Excel 2007 и более поздних версиях. Книги необходимо сохранять в формате XLSX или XLSM с размером не более 1 ГБ. Некоторые функции, описанные в этой статье, доступны только в более поздних версиях Excel.
Книги с диапазонами или с таблицами данных
Если книга содержит простые листы с диапазонами данных, для максимально эффективного получения данных в Power BI необходимо отформатировать эти диапазоны как таблицы. В этом случае при создании отчетов в Power BI вы увидите в области полей таблицы и столбцы с именами, что существенно облегчит визуализацию данных.
Книги с моделями данных
Книги могут содержать модель данных с одной или несколькими таблицами данных, загруженными в нее с помощью связанных таблиц, Power Query (получение & преобразования в Excel 2016) или Power Pivot. Power BI поддерживает все свойства моделей данных, такие как отношения, меры, иерархии и ключевые показатели эффективности.
Книги с подключениями к внешним источникам данных
При использовании Excel для подключения к внешнему источнику данных, когда книга уже загружена в Power BI, можно создавать отчеты и информационные панели на основе данных из подключенного источника данных. Вы также можете настроить запланированное обновление, чтобы автоматически подключаться прямо к источнику данных и получать обновления. Вам больше не потребуется выполнять обновление вручную на ленте "Данные" в Excel. Все визуализации в отчетах и плитки на информационных панелях, основанные на данных из этого источника данных, будут обновляться автоматически. Дополнительные сведения см. в разделе Обновление данных в Power BI.
Книги с листами Power View, сводными таблицами и диаграммами
Отображение или отсутствие отображения листов PowerView, сводных таблиц и диаграмм в Power BI зависит от того, где сохранен файл книги и от выбранного способа его получения в Power BI. Рассмотрим это подробнее ниже.
Типы данных
Power BI поддерживает следующие типы данных: целое число, десятичное число, валюта, дата, True или False, текст. Если пометить данные как относящиеся к определенному типу в Excel, это улучшит эффективность работы Power BI.
Подготовка книги для Power BI
Просмотрите это полезное видео, чтобы узнать больше о подготовке книг Excel для Power BI.
В этом видео могут использоваться более ранние версии Power BI Desktop или службы Power BI.
Важно, где сохранен файл книги
Локально. В случае сохранения файла книги на локальный диск на компьютере или в другом расположении в вашей организации вы можете загрузить файл в Power BI. На самом деле файл останется на локальном диске, поэтому файл не импортируется в Power BI целиком. На самом деле создается новый набор данных в Power BI, и в него загружаются данные и модель данных (если она существует) из файла книги. Если книга содержит листы Power View, они будут отображаться на сайте Power BI в области "Отчеты". Excel 2016 также включает функцию публикации (в меню Файл). Использование публикации эффективно аналогично использованию локального файла данных >> из Power BI, но часто проще обновлять набор данных в Power BI, если вы регулярно вносите изменения в книгу.
OneDrive — бизнес. Если вы используете хранилище OneDrive для бизнеса и для входа в него используете ту же учетную запись, что и для Power BI, вне всяких сомнений, это самый эффективный способ синхронизировать вашу работу в Excel с набором данных, отчетами и информационными панелями в Power BI. Так как Power BI и OneDrive находятся в облаке, Power BI подключается к вашему файлу книги в OneDrive примерно раз в час. При обнаружении каких-либо изменений ваш набор данных, отчеты и информационные панели в Power BI автоматически обновляются. Так же, как при сохранении книги на локальном диске, можно использовать функцию публикации для немедленного обновления набора данных и отчетов в Power BI. В противном случае Power BI автоматически выполнит синхронизацию, обычно в течение часа.
OneDrive — персональный. Если вы сохраняете файлы книг в свою учетную запись OneDrive, то получите многие преимущества, доступные для OneDrive для бизнеса. Самое большое различие заключается в том, что при первом подключении к файлу (с помощью get Data > Files > OneDrive – Personal) вам потребуется войти в OneDrive с помощью учетной записи Майкрософт, которая обычно отличается от того, что вы используете для входа в Power BI. При входе в OneDrive с учетной записью Майкрософт убедитесь, что установлен флажок "Оставаться в системе". Тогда Power BI сможет примерно раз в час подключаться к вашему файлу книги и синхронизировать его с набором данных и отчетами в Power BI.
Сайты рабочих групп SharePoint. Сохранение файлов Power BI Desktop на сайтах рабочих групп SharePoint очень похоже на сохранение файлов в OneDrive для бизнеса. Главное отличие состоит в подключении к файлу из Power BI. Можно указать URL-адрес или подключаться к корневой папке.
Одна книга Excel — два способа ее использования
Если сохранить файлы книг в OneDrive, вы сможете использовать несколько способов просмотра данных в Power BI.
Импортировать данные Excel в Power BI
Если выбрать Импорт, все поддерживаемые данные в таблицах и (или) в модели данных будут импортированы в новый набор данных в Power BI. Если у вас есть листы Power View, они будут созданы повторно в Power BI как отчеты.
Вы можете продолжить редактирование в книге. При сохранении изменений они будут синхронизированы с набором данных в Power BI, обычно в течение часа. Если вам требуется более быстрый результат, можно просто повторно щелкнуть "Опубликовать", и ваши изменения экспортируются. При этом также будут обновлены все визуализации в отчетах и на панелях мониторинга на основе следующей таблицы.
Плитки отчета | Плитки панели мониторинга |
---|---|
Открытие отчета (после окончания срока действия кэша) | Открытие панели мониторинга (после обновления кэша) |
Выбор элемента Обновить в отчете | Выбор элемента Обновить на панели мониторинга |
Автоматически для закрепленных плиток (при обновлении кэша), если панель мониторинга уже открыта |
Для закрепленных страниц не предусмотрена функция автоматического обновления.
Выберите этот параметр, если вы использовали получение & данных преобразования или Power Pivot для загрузки данных в модель данных или если в книге есть листы Power View с визуализациями, которые вы хотите просмотреть в Power BI.
В Excel 2016 также можно использовать экспорт публикации>. Это даст такой же результат. Дополнительные сведения см. в разделе Публикация в Power BI из Excel 2016.
Подключение к данным Excel, а также управление ими и просмотр их в Power BI
Если выбрать Подключить, ваша книга отобразится в Power BI так же, как в Excel Online. При этом у вас будет несколько удобных функций, не доступных в Excel Online, которые помогут вам закрепить элементы из листов прямо на информационных панелях.
Книгу нельзя редактировать в Power BI. Но если необходимо внести какие-либо изменения, нажмите кнопку "Изменить" и отредактируйте книгу в Excel Online или откройте ее в Excel на своем компьютере. Любые внесенные изменения сохраняются в книге в OneDrive.
Выберите этот параметр, только если хотите закрепить на информационных панелях какие-либо данные с листов, диапазоны, сводные таблицы или диаграммы.
В Excel 2016 можно также использовать Upload публикации > . Это даст такой же результат. Дополнительные сведения см. в разделе Публикация в Power BI из Excel 2016.
Импорт или подключение к книге Excel из Power BI
В Power BI в области навигации щелкните Получить данные.
В разделе "Файлы" щелкните Получить.
Найдите свой файл.
Если файл книги находится в OneDrive или на сайтах рабочих групп SharePoint, выберите Импорт или Подключить.
Локальные книги Excel
Можно также использовать локальный файл Excel и загрузить его в Power BI. Просто выберите Локальный файл в предыдущем меню, а затем перейдите в расположение, где сохранены нужные книги Excel.
Выбрав книгу, отправьте файл в Power BI.
После загрузки книги вы получаете уведомление о ее доступности в вашем списке книг. Книга отобразится в области навигации в разделе Книги рабочей области, а также в списке содержимого для рабочей области.
Локальные книги Excel открываются в Excel Online в Power BI. В отличие от книг Excel, хранящихся на узлах OneDrive или SharePoint, нельзя изменять локальные файлы Excel в Power BI.
Публикация из Excel 2016 на сайт Power BI
Функция Публикация в Power BI в Excel 2016 позволяет выполнить импорт или подключиться к файлу так же, как с помощью функции получения данных в Power BI. Не будем сейчас углубляться в подробности, но дополнительные сведения доступны в разделе Публикация в Power BI из Excel 2016.
При отправке книги Excel, подключенной к локальному кубу SSAS, базовая модель данных не может быть обновлена в служба Power BI.
Устранение неполадок
Файл книги имеет слишком большой размер? Ознакомьтесь с разделом Уменьшение размера книги Excel для ее просмотра в Power BI.
Ограничения
На данный момент отправка книг Excel в рабочую область Power BI не поддерживается для клиентов национальных облачных служб. Кроме того, запланированное обновление книг Excel с подключением к локальной SQL Server Analysis Services табличных моделей через шлюз не будет работать.
Дальнейшие действия
Изучите данные. После передачи данных и отчетов из файла в Power BI пришло время для их изучения. Просто щелкните правой кнопкой мыши новый набор данных и выберите команду "Просмотреть". Если при выполнении шага 4 вы выбрали подключение к файлу книги в OneDrive, ваша книга отобразится в отчетах. Если щелкнуть ее, она откроется в Power BI так же, как если бы она была в Excel Online.
Установите расписание обновлений. Если файл книги Excel подключается к внешним источникам данных или был импортирован с локального диска, можно установить расписание обновлений, чтобы гарантировать актуальность набора данных или отчета. В большинстве случаев настроить расписание обновлений довольно просто, но подробное описание этой функции выходит за рамки данной статьи. Дополнительные сведения см. в разделе Обновление данных в Power BI.
Импортировать данные из текстового файла в Excel можно двумя способами: открыть их в Excel или импортировать как диапазон внешних данных. Чтобы экспортировать данные из Excel в текстовый файл, воспользуйтесь командой Сохранить как и измените тип файла в меню.
Чаще всего используются два формата текстовых файлов:
текстовые файлы с разделителями (TXT), в которых для разделения полей текста обычно используется знак табуляции (знак ASCII с кодом 009);
текстовые файлы с разделителями-запятыми (CSV), в которых в качестве разделителя полей текста обычно используется запятая (,).
Вы можете изменить знак разделения, используемый в TXT- и CSV-файлах. Это может потребоваться для обеспечения успешного выполнения импорта и экспорта.
Примечание: Можно импортировать и экспортировать до 1 048 576 строк и 16 384 столбцов.
Импорт текстового файла путем его открытия в Excel
Текстовый файл, созданный в другой программе, можно открыть как книгу Excel с помощью команды Открыть. При открытии текстового файла в Excel его формат не изменяется — это можно заметить по заголовку окна Excel, где имя указывается с расширением текстового файла (например, TXT или CSV).
Перейдите в >открыть и перейдите в папку с текстовым файлом.
В диалоговом окне Открытие выберите текстовые файлы в списке тип файла.
Найдите нужный файл и дважды щелкните его.
Если это текстовый файл (с расширением ТХТ), запустится мастер импорта текста. Окончив работу с мастером, нажмите кнопку Готово, чтобы завершить импорт. Дополнительные сведения о разных вариантах и дополнительных параметрах см. в мастере импорта текста.
Если файл имеет расширение CSV, Excel автоматически откроет его и отобразит данные в новой книге.
Примечание: При открытии CSV-файлов для определения способа импорта каждого столбца используются заданные по умолчанию параметры форматирования данных. Если вы хотите применить другие параметры, используйте мастер импорта текста. Например, мастер потребуется, если столбец данных в CSV-файле имеет формат МДГ, а в Excel по умолчанию используется формат ГМД или необходимо преобразовать в текст столбец чисел, содержащих начальные нули, чтобы сохранить их. Чтобы принудительно запустить мастер импорта текста, можно изменить расширение имени файла с CSV на TXT или импортировать текстовый файл путем подключения к нем (дополнительные сведения см. в следующем разделе).
Импорт текстового файла путем подключения к нем (Power Query)
Вы можете импортировать данные из текстового файла в существующий.
На вкладке Данные в группе & преобразование данных выберите из текстового/CSV-документа.
В диалоговом окне Импорт данных найдите и дважды щелкните текстовый файл, который нужно импортировать,и нажмите кнопку Импорт.
В диалоговом окне предварительного просмотра есть несколько вариантов:
Выберите Загрузить, если вы хотите загрузить данные непосредственно на новый.
Кроме того, выберите загрузить в, если вы хотите загрузить данные в таблицу, в смету или на существующий или новый листа Excel, или просто создать подключение. Вы также можете добавить данные в модель данных.
Выберите Преобразовать данные, если вы хотите загрузить данные в Power Query и отредактировать их перед их преобразованием в Excel.
Если Excel не преобразует определенный столбец данных в нужный формат, их можно преобразовать после импорта. Дополнительные сведения см. в статьях Преобразование чисел из текстового формата в числовой и Преобразование дат из текстового формата в формат даты.
Экспорт данных в текстовый файл путем его сохранения
Лист Excel можно преобразовать в текстовый файл, используя команду Сохранить как.
Выберите Файл > Сохранить как.
В диалоговом окне Сохранить как в поле Тип файла выберите формат текстового файла для этого документа. Например, щелкните Текст (с табу женой) или CSV (сзапятой).
Примечание: Различные форматы текстовых файлов поддерживают разные возможности. Дополнительные сведения см. в статье Поддерживаемые Excel форматы файлов.
Перейдите в папку, куда вы хотите сохранить файл, а затем нажмите кнопку Сохранить.
Откроется диалоговое окно с напоминанием о том, что в текстовом файле будет сохранен только текущий лист. Если вы хотите сохранить именно текущий лист, нажмите кнопку ОК. Другие листы можно сохранить в отдельных текстовых файлах, повторив эту процедуру для каждого из них.
Кроме того, под лентой может появиться предупреждение о том, что некоторые возможности могут быть потеряны при сохранение книги в формате CSV.
Дополнительные сведения о сохранении файлов в других форматах см. в статье Сохранение книги в другом формате файла.
Импорт текстового файла путем подключения к нему
Вы можете импортировать данные из текстового файла в существующий.
Щелкните ячейку, в которую вы хотите поместить данные из текстового файла.
На вкладке Данные в группе Получение внешних данных нажмите Из текста.
В диалоговом окне Импорт данных найдите и дважды щелкните текстовый файл, который нужно импортировать,и нажмите кнопку Импорт.
Следуйте инструкциям мастера импорта текста. Щелкните на любой странице мастера импорта текста, чтобы получить дополнительные сведения об использовании мастера. Окончив работу с мастером, нажмите кнопку Готово, чтобы завершить импорт.
В диалоговом окне Импорт данных:
В группе Куда следует поместить данные? выполните одно из следующих действий:
Чтобы поместить данные в выбранные ячейки, щелкните На существующий лист.
Чтобы поместить данные в верхний левый угол нового листа, выберите вариант На новый лист.
При необходимости нажмите кнопку Свойства, чтобы задать параметры обновления, форматирования и макета импортируемых данных.
Excel добавит диапазон внешних данных в указанное место.
Если Excel не преобразует столбец в необходимый формат, это можно сделать после импорта. Дополнительные сведения см. в статьях Преобразование чисел из текстового формата в числовой и Преобразование дат из текстового формата в формат даты.
Экспорт данных в текстовый файл путем его сохранения
Лист Excel можно преобразовать в текстовый файл, используя команду Сохранить как.
Выберите Файл > Сохранить как.
Откроется диалоговое окно Сохранение документа.
В поле Тип файла выберите формат текстового файла для листа.
Например, выберите Текстовые файлы (с разделителями табуляции) или CSV (разделители — запятые).
Примечание: Различные форматы текстовых файлов поддерживают разные возможности. Дополнительные сведения см. в статье Поддерживаемые Excel форматы файлов.
Перейдите в папку, куда вы хотите сохранить файл, а затем нажмите кнопку Сохранить.
Откроется диалоговое окно с напоминанием о том, что в текстовом файле будет сохранен только текущий лист. Если вы хотите сохранить именно текущий лист, нажмите кнопку ОК. Другие листы можно сохранить в отдельных текстовых файлах, повторив эту процедуру для каждого из них.
Откроется второе диалоговое окно с напоминанием о том, что сохраняемый лист может содержать возможности, которые не поддерживаются текстовыми форматами файлов. Если в новом текстовом файле нужно сохранить только данные листа, нажмите кнопку Да. Если вы не уверены и хотите получить дополнительные сведения о том, какие возможности Excel не поддерживаются форматами текстовых файлов, нажмите кнопку Справка.
Дополнительные сведения о сохранении файлов в других форматах см. в статье Сохранение книги в другом формате файла.
Способ изменения деления при импорте зависит от того, как вы импортируете текст.
Если вы используете get & Transform Data > From Text/CSV, после выбора текстового файла и нажатия кнопки Импорт выберитесимвол, который нужно использовать в списке . Новый вариант можно сразу же увидеть в окне предварительного просмотра данных, чтобы убедиться в том, что вы сделаете нужный вариант, прежде чем продолжить.
Если вы импортируете текстовый файл с помощью мастера импорта текста, вы можете изменить его на шаге 2 мастера импорта текста. На этом шаге также можно изменить способ обработки последовательных разделителей (например, идущих подряд кавычек).
Дополнительные сведения о разных вариантах и дополнительных параметрах см. в мастере импорта текста.
Изменение стандартного разных списков для сохранения файлов в виде текста (CSV- или CSV-файла) в Excel
Если при сохранение в CSV-окне вы хотите использовать в качестве по умолчанию полу двоеточие, но для этого нужно ограничиться Excel, измените десятичной запятой. В этом случае Excel будет использовать для этого двоеточие. Очевидно, что это также изменит способ отображения десятичных чисел, поэтому также рассмотрите возможность изменения разграничения чисел в тысячах, чтобы сузить путаницу.
Очистка параметров Excel> Дополнительные>параметры редактирования> Использование системных междугов.
Для десятичной запятой установите для десятичной запятой (запятую).
Установите для 1000-го построитель . (точка).
Когда вы сохраняете книгу в CSV-файле, по умолчанию в качестве разных списков запятой является запятая. Вы можете изменить этот знак на другой знак с помощью параметров региона Windows.
Внимание: Изменение параметров Windows приведет к глобальным изменениям на компьютере и повлияет на все приложения. Чтобы изменить только делитель для Excel, см. изменение стандартного деления в списке для сохранения файлов в виде текста (CSV- или CSV-файла) в Excel.
В Microsoft Windows 10 щелкните правой кнопкой мыши кнопку Начните и выберите параметры.
На главной панели в группе Региональные параметрыщелкните Дополнительные параметры даты,времени и региона.
В областивыберите изменить форматы даты, времени или числа.
В диалоговом окке Регион на вкладке Формат нажмите кнопку Дополнительные параметры.
В диалоговом окне Настройка формата на вкладке Числа введите символ, который будет использовать в качестве нового в поле "Сепаратор списков".
Дважды нажмите кнопку ОК.
В разделе Часы, язык и регион щелкните элемент Изменение форматов даты, времени и чисел.
В диалоговом окке Регион на вкладке Формат нажмите кнопку Дополнительные параметры.
В диалоговом окне Настройка формата на вкладке Числа введите символ, который будет использовать в качестве нового в поле "Список".
Дважды нажмите кнопку ОК.
Примечание: После изменения разделителя элементов списка все программы на компьютере будут использовать новый символ. Вы можете вернуть стандартный символ, выполнив эти же действия.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
Читайте также: