Openpyxl создает файл Excel
Обновлено: 20.11.2024
Это подробное руководство по Python Openpyxl для чтения и записи файлов MS Excel в Python. Openpyxl — это модуль Python для работы с файлами Excel без использования прикладного программного обеспечения MS Excel. Он широко используется в различных операциях от копирования данных до интеллектуального анализа данных и анализа данных операторами компьютеров, аналитиками данных и учеными данных. openpyxl — наиболее часто используемый модуль в Python для обработки файлов Excel. Если вам нужно прочитать данные из Excel или вы хотите записать данные или нарисовать некоторые диаграммы, получить доступ к листам, переименовать листы, добавить или удалить листы, отформатировать и оформить листы или выполнить любую другую задачу, openpyxl сделает эту работу за вас.< /p>
Если вы хотите читать, писать и манипулировать (копировать, вырезать, вставлять, удалять или искать элемент и т. д.) файлы Excel в Python с простыми и практичными примерами, я предлагаю вам увидеть это простое и точное Python Excel Курс Openpyxl с примерами работы с файлами MS Excel в Python. В этом видеокурсе показано, как эффективно работать с файлами Excel и автоматизировать задачи.
Все, что вы делаете в Microsoft Excel, можно автоматизировать с помощью Python. Так почему бы не использовать мощь Python и не упростить себе жизнь. Вы можете создавать интеллектуальные и думающие листы Excel, привнося мощь логики и мышления Python в Excel, который обычно является статичным, что обеспечивает гибкость в Excel и ряд возможностей.
Автоматизируйте свои задачи Excel и сэкономьте время и усилия. Вы можете сэкономить десятки или сотни часов с помощью Python Excel Automation всего одним щелчком мыши, чтобы ваши задачи выполнялись за считанные секунды, что раньше занимало часы ручной работы с Excel и вводом данных. Openpyxl не поставляется с python, и вам придется его установить. Научитесь работать с файлами Excel в Python Openpyxl ТОЛЬКО за 1 день на интерактивном практическом обучении вместе с нами. Обучение охватывает Python Core плюс Openpyxl. Для получения дополнительной информации, пожалуйста, нажмите здесь.
Сначала мы обсудим некоторые ключевые слова, используемые в взаимосвязи Python с Excel, которые используются в программировании openpyxl для Excel.
Основы работы с Python excel openpyxl:
- Файл Excel обычно называется электронной таблицей, однако в openpyxl мы называем его рабочей книгой.
- Одна рабочая книга обычно сохраняется в файле с расширением .xlsx.
- В рабочей книге может быть от одного листа до десятков рабочих листов.
- Активный лист — это рабочий лист, который пользователь просматривает или просматривает перед закрытием файла.
- Каждый лист состоит из вертикальных столбцов, известных как столбцы, начинающиеся с A.
- Каждый лист состоит из строк, называемых строками. Нумерация начинается с 1.
- Строка и столбец встречаются в ячейке Cell. Каждая ячейка имеет определенный адрес относительно строки и столбца. Ячейка может содержать число, формулу или текст.
- Сетка ячеек делает рабочую область или лист в Excel.
Начало: Чтение данных с листа Excel:
Предположим, у нас есть этот файл Excel, который мы собираемся использовать в нашем примере. Его имя — testfile.xlsx. Вы можете либо создать новый файл Excel и заполнить данные, как показано на рисунке, либо загрузить его и сохранить в корневую папку. Означает папку python, в которой находятся все файлы python.
Дата Время | Область | Имя | Элемент | Количество | Оценка | Всего |
6/07/14 4:50 | AB | Connor< /td> | карандаш | 15 | 1,99 | 29,85 |
23.04.14 14:25 | DG | Шейн | Подшивка | 20 | 19,99 | 399,8 |
09.05.14 4:45 | PQ | Тэтчер | Карандаш | 25 | 4,99 | 124,8 |
26.13.2014 21:54:00 | AR | Гордон | Перо | 30 | 19,99 | 599,7 |
15.03.14 6:00 | TX | Джеймс | Карандаш | 35 | 2,99 | 104,7 |
14.04.12 00:00 | CA | Джонс | Подшивка | 40 | 4,99 | 199,6 |
18.04.14 00:00 | ND | Стюарт | Карандаш | 45 | 1,99 | 89,55 |
Пример файла для чтения. testfile.xlsx Лучше создать файл Excel и заполнить те же данные.
Теперь, после загрузки и установки openpyxl и наличия этого тестового файла в корневой папке, давайте приступим к задаче. Если вы не знаете, какой у вас корневой каталог для python. Введите следующий код при появлении запроса.
Мы импортируем операционную систему, а затем вызовем функцию get текущую рабочую директорию getcwd()
она сообщит текущую рабочую директорию для python, результат может быть таким, как это есть в моем переводчике.
С помощью этого кода теперь вы можете работать с файлами, сохраненными в каталоге myfiles на диске C. Если вы хотите работать с файлами Excel в Python для живого обучения 1 на 1 Python Openpyxl, вы можете связаться с нами в прямом эфире интерактивное обучение Openpyxl 1 на 1 экспертом. Узнайте все о том, как работать с файлами Excel в Python, например, читать, писать, сортировать, редактировать, создавать высококачественные графики и диаграммы в matplotlib.
Открытие файлов Excel в Python:
Сначала мы импортируем модуль openpyxl с этим оператором
Если сообщения об ошибке нет, это означает, что openpyxl установлен правильно и теперь он доступен для работы с файлами Excel.
Следующее, что мы собираемся сделать, это загрузить тестовый файл Workbook.xlsx с помощью следующего кода
openpyxl.load_workbook('testfile.xlsx') — это функция. Он принимает имя файла в качестве параметра или аргумента и возвращает тип данных рабочей книги. Фактически тип данных рабочей книги представляет файл точно так же, как объект File представляет собой открытый текстовый файл. После загрузки testfile.xlsx мы увидим, какой тип дескриптора доступен, набрав
На оболочке Python должна быть видна зеленая линия. Если вы доведете эту строку до сюда, то все в порядке. Теперь сводка команд, которые мы набрали, с их выводом в оболочке Python. Введенная нами команда показана синим цветом, а ответ интерпретатора показан зеленым здесь и далее в этом руководстве.
>>> import os
>>> os.getcwd()
'C:\\Python34'
>>> import openpyxl
>>> > wb=openpyxl.load_workbook('testfile.xlsx')
>>> type(wb)
>>>
Доступ к листам из загруженной книги:
Чтобы получить к нему доступ, нам нужно знать имя файла Excel, теперь мы можем прочитать и узнать о нем больше. Для получения информации о количестве листов в рабочей книге и их названиях существует функция get_sheet_names(). Эта функция возвращает имена листов в книге, и вы можете подсчитать имена, чтобы узнать общее количество листов в текущей книге. Код будет
>>> wb.get_sheet_names()
['Лист1', 'Лист2', 'Лист3']
Вы можете видеть, что функция вернула три имени листа, что означает, что в файле три листа. Теперь можно немного потренироваться. Измените имена листов, сохраните файл. Загрузите файл еще раз и посмотрите результаты. Мы меняем имена листов на S1, S2, S3, а затем сохраняем файл Excel. Мы должны снова загрузить файл, чтобы в ответе появились изменения. Мы создаем новый объект рабочей книги. Код останется прежним. Напишите следующий код.
>>> wb=openpyxl.load_workbook('testfile.xlsx')
>>> wb.get_sheet_names()
['S1, 'S2', 'S3']
Теперь мы видим, что имена листов в выводе изменены. Вы можете практиковать немного больше. Пожалуйста, имейте в виду, чем больше вы работаете над этим, тем большему вы учитесь. Книги и учебные пособия предназначены для руководства, вы должны проявить творческий подход, чтобы овладеть искусством. Теперь снова измените имена листов на их исходные. Вам придется загрузить файл еще раз, чтобы изменения вступили в силу.
Зная имена, мы можем получить доступ к любому листу одновременно. Предположим, мы хотим получить доступ к Sheet3. Должен быть написан следующий код
>>> import openpyxl
>>> wb=openpyxl.load_workbook('testfile.xlsx')
>>> wb.get_sheet_names()
['Лист1', 'Лист2', 'Лист3']
>>> sheet=wb.get_sheet_by_name('Лист3')
функция get_sheet_by_name('Sheet3') используется для доступа к конкретному листу. Эта функция принимает имя листа в качестве аргумента и возвращает объект листа. Мы сохраняем это в переменной и можем использовать как угодно.
если мы напишем лист, он сообщит, на какой лист он указывает, как в коде, оболочка отвечает рабочим листом «Лист3».
Если мы хотим спросить тип объекта листа. тип(лист)
Он скажет, на что указывает лист объекта?
sheet.title указывает заголовок листа, на который ссылается объект листа.
Еще немного кода с листом. Если мы хотим получить доступ к активному листу. Интерпретатор напишет имя активного листа>
Доступ к данным в ячейках рабочего листа:
Для доступа к данным из ячеек листа мы ссылаемся на лист, а затем на адрес ячейки.
>>> лист['A2'].value
datetime.datetime(2014, 7, 6, 4, 50, 30)
Другой способ доступа к данным ячейки похож на
Получение данных из ячеек с помощью строк и столбцов:
>>> лист.ячейка(строка=2, столбец=4)
>>> лист.ячейка(строка=2, столбец=4).значение
'Карандаш'
Вместо того, чтобы получать одно значение из столбца, теперь мы печатаем весь столбец, см. синтаксис. Конечно, мы будем использовать итерацию, иначе нам придется писать оператор печати снова и снова.
Для печати всего столбца код будет
>>> для x в диапазоне (1,9):
print(x,sheet.cell(row=x,column=4).value)
1 Предмет
2 Карандаш
3 Папка
4 Карандаш
5 Ручка
6 Карандаш
7 Папка
8 Карандаш
>>>
Теперь, после печати одного полного столбца, что дальше? Распечатайте несколько столбцов, и, поскольку наш файл небольшой, мы печатаем здесь все столбцы. См. код здесь.
для y в диапазоне (1,9,1):
print(sheet.cell(row=y,column=1).value,sheet.cell(row=y,column= 2).value,
sheet.cell(row=y,column=3).value,sheet.cell(row=y,column=4).value,
sheet.cell(row=y ,column=5).value, sheet.cell(row=y,column=6).value,
sheet.cell(row=y,column=7).value,sheet.cell(row=y, столбец=8).значение)
Этот код напечатает все столбцы на листе. Следовательно, до сих пор мы обращались к файлу Excel, загружали его в память, обращались к листам и, в конце концов, обращались к отдельным ячейкам, следите за обновлениями. (профессор М.Н.)
Если вы хотите читать, писать и манипулировать (копировать, вырезать, вставлять, удалять или искать элемент и т. д.) файлы Excel в Python с простыми и практичными примерами, я предлагаю вам увидеть это простое и точное Python Excel Курс Openpyxl с примерами работы с файлами MS Excel в Python. В этом видеокурсе показано, как эффективно работать с файлами Excel и автоматизировать задачи.
Все, что вы делаете в Microsoft Excel, можно автоматизировать с помощью Python. Так почему бы не использовать мощь Python и не упростить себе жизнь. Вы можете создавать интеллектуальные и думающие листы Excel, привнося мощь логики и мышления Python в Excel, который обычно является статичным, что обеспечивает гибкость в Excel и ряд возможностей.
Автоматизируйте свои задачи Excel и сэкономьте время и усилия. Вы можете сэкономить десятки или сотни часов с помощью Python Excel Automation, одним щелчком мыши выполняя свои задачи за считанные секунды, на которые раньше уходили часы работы с Excel вручную и вводом данных.
В учебнике по Openpyxl показано, как работать с файлами Excel в Python с использованием библиотеки openpyxl.
Открытьpyxl
Это библиотека Python для чтения и записи файлов Excel 2010 xlsx/xlsm/xltx/xltm.
Excel xlsx
В этом руководстве мы работаем с файлами xlsx. xlsx — это расширение файла для открытого формата электронных таблиц XML, используемого Microsoft Excel. Файлы xlsm поддерживают макросы. Формат xls — это проприетарный двоичный формат, а xlsx основан на формате Office Open XML.
Мы устанавливаем openpyxl с помощью инструмента pip3.
Openpyxl создает новый файл
В первом примере мы создаем новый файл xlsx с помощью openpyxl .
В этом примере мы создаем новый файл xlsx. Записываем данные в три ячейки.
Из модуля openpyxl мы импортируем класс Workbook. Рабочая книга — это контейнер для всех остальных частей документа.
Мы создаем новую книгу. Рабочая книга всегда создается как минимум с одним рабочим листом.
Получаем ссылку на активный лист.
Мы записываем числовые данные в ячейки A1 и A2.
В ячейку A3 пишем текущую дату.
Мы записываем содержимое в файл sample.xlsx методом сохранения.
Openpyxl записывает в ячейку
Существует два основных способа записи в ячейку: с помощью ключа рабочего листа, такого как A1 или D3, или с помощью записи строки и столбца с методом ячейки.
В этом примере мы записываем два значения в две ячейки.
Здесь мы присваиваем числовое значение ячейке A1.
В этой строке мы записываем в ячейку B2 запись строки и столбца.
Добавить значения Openpyxl
С помощью метода append мы можем добавить группу значений внизу текущего листа.
В этом примере мы добавляем три столбца данных в текущий лист.
Данные хранятся в кортеже кортежей.
Мы просматриваем контейнер строка за строкой и вставляем строку данных с помощью метода append.
Чтение ячейки Openpyxl
В следующем примере мы считываем ранее записанные данные из файла sample.xlsx.
В этом примере загружается существующий файл xlsx и считываются три ячейки.
Файл открывается с помощью метода load_workbook.
Мы читаем содержимое ячеек A1, A2 и A3. В третьей строке мы используем метод ячейки, чтобы получить значение ячейки A3.
Openpyxl прочитал несколько ячеек
У нас есть следующая спецификация:
Мы читаем данные с помощью оператора диапазона.
В этом примере мы считываем данные из двух столбцов, используя операцию диапазона.
В этой строке мы считываем данные из ячеек A1 - B6.
Функция форматирования используется для аккуратного вывода данных на консоль.
Openpyxl выполняет итерацию по строкам
Метод iter_rows возвращает ячейки листа в виде строк.
В этом примере данные перебираются строка за строкой.
Мы задаем границы для итерации.
Openpyxl выполняет итерацию по столбцам
Метод iter_cols возвращает ячейки листа в виде столбцов.
В этом примере выполняется итерация столбца данных за столбцом.
Статистика
Для следующего примера нам нужно создать файл xlsx, содержащий числа. Например, мы создали 25 строк чисел в 10 столбцах с помощью функции СЛУЧМЕЖДУ.
В этом примере мы считываем все значения с листа и вычисляем некоторую базовую статистику.
Модуль статистики импортируется для предоставления некоторых статистических функций, таких как медиана и дисперсия.
Используя параметр data_only, мы получаем значения из ячеек, а не из формулы.
Мы получаем все непустые строки ячеек.
За два цикла for мы формируем список целочисленных значений из ячеек.
Мы вычисляем и печатаем математическую статистику о значениях. Некоторые функции встроены, другие импортируются вместе с модулем статистики.
Openpyxl фильтрует и сортирует данные
Лист имеет атрибут auto_filter, который позволяет задавать условия фильтрации и сортировки.
Обратите внимание, что Openpyxl устанавливает условия, но мы должны применять их внутри приложения электронных таблиц.
В этом примере мы создаем лист с элементами и их цветами. Мы устанавливаем фильтр и условие сортировки.
Размеры Openpyxl
Чтобы получить те ячейки, которые действительно содержат данные, мы можем использовать измерения.
В этом примере вычисляются размеры двух столбцов данных.
Мы добавляем данные на лист. Обратите внимание, что мы начинаем добавлять с третьего ряда.
Свойство размеры возвращает верхнюю левую и нижнюю правую ячейку области непустых ячеек.
С помощью свойств min_row и max_row мы получаем минимальную и максимальную строку, содержащую данные.
С помощью свойств min_column и max_column мы получаем минимальный и максимальный столбец, содержащий данные.
Мы перебираем данные и выводим их на консоль.
Листы
В каждой книге может быть несколько листов.
Давайте создадим рабочую книгу с этими тремя листами.
Программа работает с листами Excel.
Метод get_sheet_names возвращает имена доступных листов в книге.
Получаем активный лист и печатаем его тип в терминал.
Мы получаем ссылку на лист с помощью метода get_sheet_by_name.
Заголовок полученного листа печатается на терминале.
В этом примере мы создаем новый лист.
С помощью метода create_sheet создается новый лист.
Имена листов также можно отображать с помощью атрибута sheetnames.
Лист можно удалить с помощью метода remove_sheet.
Новый лист может быть создан в указанной позиции; в нашем случае мы создаем новый лист в позиции с индексом 0.
Можно изменить цвет фона рабочего листа.
В этом примере изменяется цвет фона листа с названием «Март».
Мы меняем свойство tabColor на новый цвет.
Цвет фона третьего листа изменен на голубой.
Объединение ячеек
Ячейки можно объединять с помощью метода merge_cells и разъединять с помощью метода unmerge_cells. Когда мы объединяем ячейки, все ячейки, кроме верхней левой, удаляются с листа.
В этом примере мы объединяем четыре ячейки: A1, B1, A2 и B2. Текст в последней ячейке выравнивается по центру.
Чтобы центрировать текст в последней ячейке, мы используем класс Alignment из модуля openpyxl.styles.
Мы объединяем четыре ячейки с помощью метода merge_cells.
Мы получаем последнюю ячейку.
Мы устанавливаем текст в объединенную ячейку и обновляем ее выравнивание.
Стоп-панели Openpyxl
Когда мы фиксируем панели, мы сохраняем область рабочего листа видимой при прокрутке к другой области рабочего листа.
В примере панели фиксируются ячейкой B2.
Чтобы заморозить панели, мы используем свойство freeze_panes.
Формулы Openpyxl
В следующем примере показано, как использовать формулы. openpyxl не выполняет расчеты; он записывает формулы в ячейки.
В этом примере мы вычисляем сумму всех значений с помощью функции СУММ и выделяем результат полужирным шрифтом.
Мы создаем два столбца данных.
Получаем ячейку, в которой показываем результат вычисления.
Записываем формулу в ячейку.
Мы меняем стиль шрифта.
Изображения Openpyxl
В следующем примере показано, как вставить изображение на лист.
В этом примере мы записываем изображение на лист.
Мы работаем с классом Image из модуля openpyxl.drawing.image.
Создается новый класс Image. Изображение icesid.jpg находится в текущем рабочем каталоге.
Мы добавляем новое изображение с помощью метода add_image.
Диаграммы Openpyxl
Библиотека openpyxl поддерживает создание различных диаграмм, включая гистограммы, линейные диаграммы, диаграммы с областями, пузырьковые диаграммы, точечные диаграммы и круговые диаграммы.
Согласно документации, openpyxl поддерживает создание диаграмм только на листе. Диаграммы в существующих книгах будут потеряны.
В этом примере мы создаем гистограмму, чтобы показать количество олимпийских золотых медалей в каждой стране в Лондоне в 2012 году.
Создается новая рабочая книга.
Мы создаем некоторые данные и добавляем их в ячейки активного листа.
С помощью класса Reference мы обращаемся к строкам на листе, которые представляют данные. В нашем случае это номера олимпийских золотых медалей.
Мы создаем ось категорий. Ось категорий — это ось, данные которой обрабатываются как последовательность нечисловых текстовых меток. В нашем случае у нас есть текстовые метки, представляющие названия стран.
Мы создаем линейчатую диаграмму и задаем для нее данные и категории.
Используя атрибуты legend и majorGridlines, мы отключаем легенды и основные линии сетки.
Установив для свойства VariColors значение True, каждая полоса будет иметь свой цвет.
Для диаграммы задан заголовок.
Созданная диаграмма добавляется на лист с помощью метода add_chart.
В этом уроке мы работали с библиотекой openpyxl. Мы прочитали данные из файла Excel, записали данные в файл Excel.
Чтение электронных таблиц Excel – это хорошо. Однако вам также необходимо иметь возможность создавать или редактировать электронные таблицы. В этой главе основное внимание будет уделено тому, как это сделать! OpenPyXL позволяет создавать электронные таблицы Microsoft Excel с минимальными усилиями.
Создание электронных таблиц Excel с помощью Python позволяет создавать отчеты нового типа, которые будут использовать ваши пользователи. Например, вы можете получить данные от клиента в формате JSON или XML. Большинство бухгалтеров и деловых людей не привыкли читать эти форматы данных.
Как только вы научитесь создавать электронные таблицы Excel с помощью Python, вы сможете использовать эти знания для преобразования других данных в электронные таблицы Excel. Эти знания также позволяют вам сделать обратное, взяв электронную таблицу Excel и выведя ее в другом формате, таком как JSON или XML.
В этой статье вы узнаете, как использовать OpenPyXL для выполнения следующих действий:
- Создать таблицу
- Запись в таблицу
- Добавление и удаление листов
- Вставка и удаление строк и столбцов
- Изменить данные ячейки
- Создать объединенные ячейки
- Свернуть строки и столбцы
Давайте начнем с создания новой электронной таблицы!
Примечание редактора. Эта статья основана на главе из книги "Автоматизация Excel с помощью Python". Вы можете заказать копию на Gumroad или Kickstarter.
Создание электронной таблицы
Создание пустой электронной таблицы с помощью OpenPyXL не требует много кода. Откройте редактор Python и создайте новый файл. Назовите его create_spreadsheet.py .
Теперь добавьте в файл следующий код:
Критическим моментом здесь является то, что вам нужно импортировать класс Workbook. Этот класс позволяет создать экземпляр объекта рабочей книги, который затем можно сохранить. Все, что делает этот код, — это создает файл, который вы ему передаете, и сохраняете его.
Ваша новая таблица будет выглядеть следующим образом:
Теперь вы готовы научиться добавлять данные в ячейки электронной таблицы.
Запись в электронную таблицу
При записи данных в электронную таблицу необходимо получить объект "лист". Вы узнали, как это сделать в предыдущей главе, используя workbook.active , который дает вам активный или видимый в данный момент лист. Вы также можете явно указать OpenPyXL, к какому листу вы хотите получить доступ, передав ему заголовок листа.
В этом примере вы создадите еще одну новую программу, а затем будете использовать активный лист. Откройте новый файл и назовите его add_data.py. Теперь добавьте этот код в свой файл:
Этот код перезапишет электронную таблицу Excel из предыдущего примера. После создания объекта Workbook() вы получаете активный рабочий лист. Затем вы добавляете текстовые строки в ячейки: A1, A2 и A3. Последний шаг — сохранить новую таблицу.
Когда вы запустите этот код, ваша новая электронная таблица будет выглядеть так:
Эту технику можно использовать для записи данных в любую ячейку электронной таблицы.
Теперь давайте узнаем, как добавлять и удалять рабочие листы!
Добавление и удаление листов
Добавление листа в книгу происходит автоматически при создании новой книги. Рабочий лист будет называться «Лист» по умолчанию. При желании вы можете сами задать имя листа.
Чтобы увидеть, как это работает, создайте новый файл с именем create_sheet_title.py и добавьте следующий код:
Здесь вы создаете рабочую книгу, а затем получаете активный рабочий лист. Затем вы можете установить заголовок рабочего листа, используя атрибут title. Следующая строка кода добавляет новый рабочий лист в книгу с помощью вызова create_sheet() .
Метод create_sheet() принимает два параметра: title и index . Атрибут title дает название рабочему листу. Индекс указывает рабочей книге, куда вставить рабочий лист, слева направо. Если вы укажете ноль, ваш рабочий лист будет вставлен в начало.
Если вы запустите этот код, ваша новая электронная таблица будет выглядеть так:
Иногда вам потребуется удалить рабочий лист. Возможно, на этом листе больше нет достоверной информации, или он был создан случайно.
Чтобы узнать, как удалить лист, создайте еще один новый файл и назовите его delete_sheets.py . Затем добавьте этот код:
В этом примере вы создаете два новых листа. У первого рабочего листа не указан заголовок, поэтому по умолчанию используется «Лист1». Вы указываете заголовок для второго листа, а затем распечатываете все текущие заголовки рабочих листов.
Затем вы используете ключевое слово Python del, чтобы удалить имя рабочего листа из рабочей книги, что приводит к удалению листа. Затем вы снова распечатываете заголовки текущих рабочих листов.
Вот результат выполнения кода:
Первый рабочий лист создается автоматически при создании экземпляра рабочей книги. Рабочий лист называется «Лист». Затем вы делаете «Лист1». Наконец, вы создаете «Второй лист», но вставляете его в позицию 1, что указывает рабочей книге сдвинуть «Лист1» вправо на одну позицию.
Из вывода выше видно, как упорядочены рабочие листы до и после добавления и удаления «второго листа».
Теперь давайте узнаем о вставке и удалении строк и столбцов!
Вставка и удаление строк и столбцов
Пакет OpenPyXL предоставляет несколько методов, которые можно использовать для вставки или удаления строк и столбцов. Эти методы являются частью объекта Worksheet.
Вы узнаете о следующих четырех методах:
- .insert_rows()
- .delete_rows()
- .insert_cols()
- .delete_cols()
Каждый из этих методов может принимать следующие два аргумента:
- idx — индекс для вставки (или удаления из него)
- количество – количество строк или столбцов, которое необходимо добавить (или удалить) .
Методы вставки можно использовать для вставки строк или столбцов по указанному индексу.
Откройте новый файл и назовите его insert_demo.py . Затем введите этот код в свой новый файл:
Здесь вы создаете еще одну новую электронную таблицу. В этом случае вы добавляете текст в первые три ячейки в столбце «А». Затем вы вставляете один столбец в индекс один. Это означает, что вы вставили один столбец перед "A", что приводит к смещению ячеек в столбце "A" в столбец "B".
Затем вы вставляете две новые строки, начиная с индекса два. Этот код вставит две строки между первой и второй строками.
Вы можете увидеть, как это меняет ситуацию, взглянув на следующий снимок экрана:
Попробуйте изменить индексы или количество строк и столбцов, которые вы хотите вставить, и посмотрите, как это работает.
Вам также потребуется время от времени удалять столбцы и строки. Для этого вы будете использовать .delete_rows() и .delete_cols() .
Откройте новый файл и назовите его delete_demo.py . Затем добавьте этот код:
В этом примере вы добавляете текст в шесть разных ячеек.Четыре из этих ячеек находятся в столбце «А». Затем вы используете delete_cols() для удаления столбца «A»! Это означает, что вы избавились от четырех значений. Затем вы удаляете две строки, начиная со строки номер два.
При запуске этого кода результат должен выглядеть следующим образом:
Попробуйте изменить значения индекса или суммы, чтобы привыкнуть к удалению строк и столбцов.
Теперь вы готовы научиться редактировать значения электронной таблицы!
Редактирование данных ячейки
Вы можете использовать OpenPyXL для изменения значений в уже существующей электронной таблице Excel. Вы можете сделать это, указав ячейку, которую хотите изменить, а затем установите для нее новое значение.
В этом примере вы будете использовать файл inserting.xlsx, созданный в предыдущем разделе. Теперь создайте новый файл Python с именем edit_demo.py. Затем добавьте следующий код:
Этот код загружает файл Excel, созданный в предыдущем разделе. Затем он перебирает каждое значение в словаре данных, которое вы передали функции edit(). Вы получаете текущее значение для ячейки, используя ключ в словаре. Затем вы меняете значение этой ячейки, чтобы оно соответствовало значению в словаре.
Чтобы было более понятно, что происходит, вы распечатываете старое и новое значения ячейки.
Когда вы запустите этот код, вы увидите следующий вывод:
Откройте новую версию файла inserting.xlsx. Теперь он должен выглядеть следующим образом:
Здесь вы можете увидеть, как изменились значения ячеек, чтобы они соответствовали значениям, указанным в словаре данных.
Теперь вы можете двигаться дальше и научиться создавать объединенные ячейки!
Создание объединенных ячеек
Объединенная ячейка – это объединение двух или более ячеек в одну. Чтобы установить значение MergedCell, вы должны использовать самую верхнюю левую ячейку. Например, если вы объедините "A2:E2", вы должны установить значение ячейки "A2" для объединенных ячеек.
Чтобы увидеть, как это работает на практике, создайте файл с именем merged_cells.py и добавьте в него следующий код:
В OpenPyXL есть множество способов оформления ячеек. В этом примере вы импортируете Alignment из openpyxl.styles. Вы узнаете больше о стилях и форматировании ячеек в следующей главе.
Здесь вы объединяете ячейки "A2:E2" и устанавливаете выравнивание по центру ячейки. Затем вы устанавливаете значение "A2" в строку, которую вы передали функции create_merged_cells().
Когда вы запустите этот пример, ваша новая электронная таблица Excel будет выглядеть следующим образом:
Чтобы получить практический опыт, измените диапазон ячеек, которые вы хотите объединить, и попробуйте это с набором выравнивания и без него.
Теперь вы готовы научиться сворачивать столбцы или строки!
Складывание строк и столбцов
Microsoft Excel поддерживает свертывание строк и столбцов. Термин «складывание» также называют «скрытием» или созданием «наброска». Свернутые строки или столбцы можно развернуть (или развернуть), чтобы снова сделать их видимыми. Вы можете использовать эту функцию, чтобы сделать таблицу короче. Например, вы можете отображать только промежуточные итоги или результаты уравнений, а не все данные сразу.
OpenPyXL также поддерживает свертывание. Чтобы увидеть, как это работает, создайте новый файл с именемfolding.py и введите следующий код:
Ваша функция Folding() принимает кортеж строк или столбцов, или и то, и другое. Вы можете указать OpenPyXL, хотите ли вы, чтобы эти строки и столбцы были скрыты или свернуты. В этом примере вы складываете ряды 1-5 и столбцы C-F. Чтобы произошло складывание, вам нужно вызвать sheet.row_dimensions.group() .
Когда вы запустите этот код, ваша электронная таблица будет выглядеть так:
В этой таблице видно, что некоторые строки и столбцы свернуты или скрыты. Рядом со строкой 6 есть символ «+», а над столбцом «G» — еще один символ «+». Если вы нажмете любую из этих кнопок, развернутые строки или столбцы будут развернуты.
Попробуйте этот код. Вы также можете поэкспериментировать с разными диапазонами строк или столбцов.
Теперь вы готовы научиться замораживать панель!
Замораживание панелей
Microsoft Excel позволяет закреплять области. Это означает, что вы можете заморозить один или несколько столбцов или строк. Одним из популярных вариантов использования является закрепление строки заголовков, чтобы заголовки всегда были видны при прокрутке большого количества данных.
OpenPyXL предоставляет атрибут freeze_panes для объекта Worksheet, который вы можете установить. Вам нужно выбрать ячейку ниже и справа от столбцов, которые вы хотите заморозить. Например, если вы хотите закрепить первую строку в электронной таблице, выберите ячейку "A2", чтобы применить заморозку к этой строке.
Вы можете увидеть, как это работает, написав код. Откройте новый файл и назовите его frost_panes.py. Затем введите в него следующее:
Здесь вы создаете новую рабочую книгу и устанавливаете заголовок активного листа на «Заморозить». Затем вы устанавливаете для атрибута freeze_panes значение «A2». Остальной код функции добавляет пару строк данных на рабочий лист.
Когда вы запустите этот код, созданная вами электронная таблица будет выглядеть следующим образом:
Попробуйте прокрутить несколько строк в таблице вниз. Верхняя строка всегда должна оставаться видимой, поскольку она была "заморожена".
Подведение итогов
Вы можете использовать OpenPyXL не только для создания электронной таблицы Excel, но и для изменения уже существующей. В этой главе вы узнали, как сделать следующее:
- Создать таблицу
- Запись в таблицу
- Добавление и удаление листов
- Вставка и удаление строк и столбцов
- Изменить данные ячейки
- Создать объединенные ячейки
- Закрепить области
Попробуйте примеры из этой главы. Затем немного измените их, чтобы увидеть, что еще вы можете сделать самостоятельно.
openpyxl — это библиотека Python для чтения и записи файлов Excel 2010 xlsx/xlsm/xltx/xltm.
Он родился из-за отсутствия существующей библиотеки для чтения/записи из Python в формат Office Open XML.
Файл Excel, который мы используем для работы, называется рабочей книгой и содержит минимум один лист и максимум десятки листов.
Один лист состоит из строк, начинающихся с 1, и столбцов, начинающихся с A.
Используя библиотеку openpxyl, мы можем выполнять различные функции, включая добавление листов и данных, манипулировать и даже удалять указанные данные.
Теперь, когда мы знаем, с чем имеем дело, давайте приступим.
Начало работы
Openpyxl не поставляется вместе с Python, а это означает, что нам придется загрузить и установить его с помощью диспетчера пакетов PIP. Для этого запустите терминал и введите команду ниже.
После загрузки и установки библиотеки нам потребуется импортировать ее различные модули, чтобы начать работу с файлами Excel.
Давайте сначала импортируем модуль рабочей книги из библиотеки openpyxl
Теперь, когда мы сделали необходимые импорты, мы можем работать над созданием и сохранением данных на листе Excel с помощью модуля Workbook.
Создание и сохранение данных в файле Excel
Во-первых, мы создаем экземпляр класса Workbook().
Далее мы создаем лист.
Пришло время добавить данные.
Теперь, когда мы добавили некоторый контент, давайте сохраним и просмотрим созданный нами файл.
Вывод
Точно так же вы можете добавлять значения, используя координаты ячеек вместо A1 или B1.
Это добавит 5 к B2.
Чтение данных из файла Excel
Теперь, когда мы узнали, как записывать данные в файл Excel, давайте теперь прочитаем данные из файла Excel.
На этот раз нам не нужно импортировать модуль Workbook, достаточно импортировать openpyxl.
Чтобы прочитать файл, мы должны сначала сообщить его местоположение читателю.
Это загрузит файл Excel. Теперь мы можем начать считывать из него данные.
Вывод
Пример
Заключение
Теперь вы можете читать и писать файлы Excel с помощью Python!
В библиотеке openpyxl намного больше функций, вы можете добавлять сразу несколько данных, строить диаграммы, отображать статистику и многое другое!
Читайте также: