Документация openpyxl python: библиотеки для работы с данными / Блог компании OTUS. Онлайн-образование / Хабр
Как создать exel документ модуль openpyxl Python
Как создать exel документ в Python? Для этих целей есть много библиотек. Рассмотрим самую популярную библиотеку openpyxl. Вы сможете не только сгенерировать exel документ в openpyxl, но и вставить в него график для наглядности. Хорош тот скрипт который содержит мало кода. Подготовил для вас пример. Он содержит массу циклов. Я учёл свой опыт создания эксельных документов на PHP. Скажу что библиотек PHPExel сильно уступает openpyxl. В плане рисования графиков openpyxl лучше. Посмотрите на пример.
#!/usr/local/bin/python3
from openpyxl import Workbook
from openpyxl.styles import PatternFill, Border, Side, Alignment, Protection, Font, Side
from datetime import *
#определяем стили
font = Font(name='Calibri',
size=11,
bold=False,
italic=False,
vertAlign=None,
underline='none',
strike=False,
color='FF000000')
fill = PatternFill(fill_type='solid',
start_color='c1c1c1',
end_color='c2c2c2')
border = Border(left=Side(border_style='thin',
color='FF000000'),
right=Side(border_style='thin',
color='FF000000'),
top=Side(border_style='thin',
color='FF000000'),
bottom=Side(border_style='thin',
color='FF000000'),
diagonal=Side(border_style='thin',
color='FF000000'),
diagonal_direction=0,
outline=Side(border_style='thin',
color='FF000000'),
vertical=Side(border_style='thin',
color='FF000000'),
horizontal=Side(border_style='thin',
color='FF000000')
)
align_center=Alignment(horizontal='center',
vertical='bottom',
text_rotation=0,
wrap_text=False,
shrink_to_fit=False,
indent=0)
align_left=Alignment(horizontal='left',
vertical='bottom',
text_rotation=0,
wrap_text=False,
shrink_to_fit=False,
indent=0)
number_format = 'General'
protection = Protection(locked=True,
hidden=False)
# объект
wb = Workbook()
# активный лист
ws = wb.active
#название страницы
#ws = wb.create_sheet('первая страница', 0)
ws.title = 'первая страница'
#значение ячейки
#ws['A1'] = "Hello!"
#текущее время
today = datetime.today()
today = today.strftime('%d.%m.%Y %S:%M:%H')
#данные для строк
rows = [
['Название', 'Язык', 'Время'],
['Ivan', 'PHP', today],
['Egor', 'Python', today],
['Anton', 'Ruby', today],
['Roman', 'Javascript', today],
]
#циклом записываем данные
for row in rows:
ws.append(row)
#раскрвшивание фона для заголовков
ws['A1'].fill = fill
ws['B1'].fill = fill
ws['C1'].fill = fill
#шрифты
ws['A3'].font = font
#обводка
ws['A3'].border = border
#выравнивание
ws['A3'].alignment = align_center
#вручную устанавливаем высоту первой строки
#rd = ws.row_dimensions[1]
#rd.height = 16
#увеличиваем все строки по высоте
max_row = ws.max_row
i = 1
while i
В самом начале скрипта мы подключаем различные модули. Тут ошибок быть не должно. Далее определяем стили оформления. Отдельно определены элементы оформления:
- PatternFill — цвет фона ячейки
- Border — обводка
- Alignment — выравнивание
- Protection — защита
- Font — шрифт
Теперь необходимо создать объект wb и первый лист. В документе может быть множество листов: ws1, ws2, ws3… Активным может быть только один лист.
# объект
wb = Workbook()
# активный лист
ws = wb.active
Для каждой страницы вы сможете создать своё название. wb.create_sheet(‘первая страница’, 0) — этой командой будет создана первая страница с вашим названием.
#название страницы
#ws = wb.create_sheet('первая страница', 0) - создание первой страницы
ws.title = 'первая страница'
Вы можете каждой ячейке присвоить своё значение. Если у вас 2 столбца и одна строка в таблице, то нет смысла лепить цикл. Проще вручную заполнить ячейки данными. Если у вас много данных (строк в таблице), то вам необходим любой цикл. В списке rows у нас будут данные. Я поместил туда и названия столбцов. Вы можете вручную добавлять названия для столбцов. Например ws[‘A1′]=’Название’. Можете вставить в начало списка свой список с названиями столбцов. Функция append устанавливает значение для каждой ячейки.
#значение ячейки
#ws['A1'] = "Hello!"
#текущее время
today = datetime.today()
today = today.strftime('%d.%m.%Y %S:%M:%H')
#данные для строк
rows = [
['Название', 'Язык', 'Время'],
['Ivan', 'PHP', today],
['Egor', 'Python', today],
['Anton', 'Ruby', today],
['Roman', 'Javascript', today],
]
#циклом записываем данные
for row in rows:
ws.append(row)
Покажу вам как вручную менять оформление ячеек. Вы должны каждой ячейке менять свойства.
#раскрашивание фона для заголовков
ws['A1'].fill = fill
ws['B1'].fill = fill
ws['C1'].fill = fill
#шрифты
ws['A3'].font = font
#обводка
ws['A3'].border = border
#выравнивание
ws['A3'].alignment = align_center
Теперь покажу вам как увеличить строки по высоте. Я определил номер позиции самой последней строки ws.max_row. Это значение необходимо для остановки цикла while.
#вручную устанавливаем высоту первой строки
#rd = ws.row_dimensions[1]
#rd.height = 16
#увеличиваем все строки по высоте
max_row = ws.max_row
i = 1
while i
Добавим выравнивание вместе с обводкой ячеек (сеткой).
#сетка + выравнивание
for cellObj in ws['A1:C5']:
for cell in cellObj:
#print(cell.coordinate, cell.value)
ws[cell.coordinate].border = border
ws[cell.coordinate].alignment = align_center
#выравнивание одного столбца
for cellObj in ws['A2:A5']:
for cell in cellObj:
ws[cell.coordinate].alignment = align_left
Для удобства можно автоматически расширить столбцы. Вам не придется вручную расширять каждый столбец. В одной статье было подробно расписано как при помощи цикла расширять столбцы. Это одно из предоставленных решений.
dims = {}
for row in ws.rows:
for cell in row:
if cell.value:
dims[cell.column] = max((dims.get(cell.column, 0), len(cell.value)))
for col, value in dims.items():
#value * коэфициент
ws.column_dimensions[col].width = value * 1.5
Теперь сохраним файл в текущую директорию. Если вам нужно менять пути, то читейте статью Модуль os Python. Там будет функция os.chdir() для смены директории и функция os.getcwd() определение тукущей директории.
#сохранение файла в текущую директорию
wb.save("sample.xlsx")
Посмотрите на результат.
наш exel документ
просмотры: 9802,
уровень: лёгкий уровень,
рейтинг: 5,
дата: 2017-10-26 22:51:46
Комментарии:
Python | Запись в файл Excel с использованием модуля openpyxl
Предварительное условие : чтение файла Excel с использованием openpyxl
Openpyxl
— это библиотека Python для чтения и записи файлов Excel (с расширением xlsx / xlsm / xltx / xltm). Модуль openpyxl позволяет программе Python читать и изменять файлы Excel.
Например, пользователю, возможно, придется пройти через тысячи строк и выбрать несколько полезных сведений, чтобы внести небольшие изменения на основе некоторых критериев. Используя модуль Openpyxl, эти задачи могут быть выполнены очень эффективно и легко.
Давайте посмотрим, как создавать и писать в Excel-лист с помощью Python.
Код № 1: Программа для печати названия заголовка активного листа
|
Выход :
active sheet title: Sheet
Код № 2: Программа для изменения названия заголовка
|
Выход :
sheet name is renamed as: sheet1
Код № 3: Программа для записи в лист Excel
|
Выход :
код № 4: Программа для добавления листов в рабочую книгу
|
Выход :
Рекомендуемые посты:
Python | Запись в файл Excel с использованием модуля openpyxl
0.00 (0%) 0 votes
Python Language — OpenPyXL | python Tutorial
пример
OpenPyXL — это модуль для управления и создания xlsx/xlsm/xltx/xltm
в памяти.
Манипуляция и чтение существующей книги:
import openpyxl as opx
#To change an existing wookbook we located it by referencing its path
workbook = opx.load_workbook(workbook_path)
load_workbook()
содержит параметр read_only
, установка этого параметра в True
будет загружать книгу как read_only, это полезно при чтении больших файлов xlsx
:
workbook = opx.load_workbook(workbook_path, read_only=True)
После того, как вы загрузили книгу в память, вы можете получить доступ к отдельным листам, используя workbook.sheets
first_sheet = workbook.worksheets[0]
Если вы хотите указать имя доступных листов, вы можете использовать workbook.get_sheet_names()
.
sheet = workbook.get_sheet_by_name('Sheet Name')
Наконец, строки листа могут быть доступны с помощью sheet.rows
. Чтобы перебрать строки в листе, используйте:
for row in sheet.rows:
print row[0].value
Поскольку каждая row
в rows
является списком Cell
s, используйте Cell.value
для получения содержимого Cell.
Создание новой книги в памяти:
#Calling the Workbook() function creates a new book in memory
wb = opx.Workbook()
#We can then create a new sheet in the wb
ws = wb.create_sheet('Sheet Name', 0) #0 refers to the index of the sheet order in the wb
Несколько свойств вкладки могут быть изменены через openpyxl, например tabColor
:
ws.sheet_properties.tabColor = 'FFC0CB'
Чтобы сохранить нашу созданную книгу, мы закончим:
wb.save('filename.xlsx')
Python | Чтение файла Excel с использованием модуля openpyxl
Openpyxl
— это библиотека Python для чтения и записи файлов Excel (с расширением xlsx / xlsm / xltx / xltm). Модуль openpyxl позволяет программе Python читать и изменять файлы Excel.
Например, пользователю, возможно, придется пройти через тысячи строк и выбрать несколько полезных сведений, чтобы внести небольшие изменения на основе некоторых критериев. Используя модуль Openpyxl, эти задачи могут быть выполнены очень эффективно и легко.
Используйте эту команду для установки модуля openpyxl
:
sudo pip3 install openpyxl
Входной файл:
Код № 1: Программа для печати конкретного значения ячейки
|
Выход :
STUDENT 'S NAME
Код № 2: Определить общее количество строк
|
Выход :
6
Код № 3: Определить общее количество столбцов
|
Выход :
4
Код № 4: Распечатать название всех столбцов
|
Выход :
STUDENT 'S NAME COURSE BRANCH SEMESTER
Код № 5: печать первого значения столбца
|
Выход :
STUDENT 'S NAME ANKIT RAI RAHUL RAI PRIYA RAI AISHWARYA HARSHITA JAISWAL
Код № 6: печать определенного значения строки
|
Выход :
ANKIT RAI B.TECH CSE 4
Рекомендуемые посты:
Python | Чтение файла Excel с использованием модуля openpyxl
0.00 (0%) 0 votes
Учебник
Openpyxl — чтение, запись файлов Excel xlsx на Python
последнее изменение 6 июля 2020 г.
В этом руководстве мы покажем, как работать с файлами Excel в Python, используя
библиотека openpyxl.
Openpyxl
openpyxl — это библиотека Python для чтения и записи файлов Excel 2010 xlsx / xlsm / xltx / xltm.
Excel xlsx
В этом руководстве мы работаем с файлами xlsx. XLSX — это расширение файла для
открытый формат файла электронной таблицы XML, используемый Microsoft Excel.Файлы xlsm поддерживают макросы.
Формат xls — это проприетарный двоичный формат, а xlsx основан на формате Office Open XML.
$ sudo pip3 установить openpyxl
Мы устанавливаем openpyxl
с помощью инструмента pip3
.
Openpyxl создать новый файл
В первом примере мы создаем новый файл xlsx с openpyxl
.
write_xlsx.py
#! / usr / bin / env python из openpyxl import Workbook время импорта book = Рабочая тетрадь () лист = книга.активный лист ['A1'] = 56 лист ['A2'] = 43 now = time.strftime ("% x") лист ['A3'] = сейчас book.save ("sample.xlsx")
В этом примере мы создаем новый файл xlsx. Записываем данные в три ячейки.
из openpyxl import Workbook
Из модуля openpyxl
мы импортируем класс Workbook
.
Книга — это контейнер для всех остальных частей документа.
book = Рабочая тетрадь ()
Создаем новую рабочую тетрадь. Книга всегда создается как минимум с одним листом.
sheet = book.active
Получаем ссылку на активный лист.
лист ['A1'] = 56 лист ['A2'] = 43
Записываем числовые данные в ячейки A1 и A2.
now = time.strftime ("% x") лист ['A3'] = сейчас
Записываем текущую дату в ячейку A3.
book.save ("sample.xlsx")
Записываем содержимое в файл sample.xlsx
с
метод save
.
Рис.: Новый файл
Openpyxl записывает в ячейку
Есть два основных способа записи в ячейку: с помощью ключа
лист, такой как A1 или D3, или с использованием нотации строк и столбцов
с помощью метода ячейки
.
write2cell.py
#! / usr / bin / env python из openpyxl import Workbook book = Рабочая тетрадь () sheet = book.active лист ['A1'] = 1 sheet.cell (строка = 2, столбец = 2) .value = 2 book.save ('write2cell.xlsx')
В этом примере мы записываем два значения в две ячейки.
лист ['A1'] = 1
Здесь мы присваиваем числовое значение ячейке A1.
sheet.cell (строка = 2, столбец = 2) .value = 2
В этой строке мы пишем в ячейку B2 с обозначением строки и столбца.
Openpyxl добавить значения
С помощью метода append
мы можем добавить группу
значения внизу текущего листа.
appending_values.py
#! / usr / bin / env python из openpyxl import Workbook book = Рабочая тетрадь () sheet = book.active строки = ( (88, 46, 57), (89, 38, 12), (23, 59, 78), (56, 21, 98), (24, 18, 43), (34, 15, 67) ) для ряда в ряды: sheet.append (строка) book.save ('добавление.xlsx')
В этом примере мы добавляем три столбца данных в
текущий лист.
строки = ( (88, 46, 57), (89, 38, 12), (23, 59, 78), (56, 21, 98), (24, 18, 43), (34, 15, 67) )
Данные хранятся в виде кортежей.
для ряда в ряды: sheet.append (строка)
Перебираем контейнер построчно и вставляем
строка данных с методом добавления
.
Openpyxl читать ячейку
В следующем примере мы читаем ранее записанные данные
из образца.xlsx
файл.
read_cells.py
#! / usr / bin / env python импортировать openpyxl книга = openpyxl.load_workbook ('sample.xlsx') sheet = book.active a1 = лист ['A1'] a2 = лист ['A2'] a3 = sheet.cell (строка = 3, столбец = 1) печать (a1.value) печать (a2.value) печать (a3.value)
В примере загружается существующий файл xlsx и читаются три ячейки.
книга = openpyxl.load_workbook ('sample.xlsx')
Файл открывается с помощью метода load_workbook
.
a1 = лист ['A1'] a2 = лист ['A2'] a3 = sheet.cell (строка = 3, столбец = 1)
Мы читаем содержимое ячеек A1, A2 и A3. В третьей строке
мы используем метод ячейки
, чтобы получить значение ячейки A3.
$ ./read_cells.py 56 43 год 26.10.16
Это результат примера.
Openpyxl читает несколько ячеек
У нас есть следующая таблица данных:
Рисунок: Позиции
Мы читаем данные с помощью оператора диапазона.
read_cells2.py
#! / usr / bin / env python импортировать openpyxl книга = openpyxl.load_workbook ('items.xlsx') sheet = book.active ячейки = лист ['A1': 'B6'] для c1, c2 в ячейках: print ("{0: 8} {1: 8}". формат (c1.value, c2.value))
В этом примере мы читаем данные из двух столбцов, используя операцию диапазона.
ячейки = лист ['A1': 'B6']
В этой строке мы читаем данные из ячеек A1 — B6.
для c1, c2 в ячейках: print ("{0: 8} {1: 8}".формат (c1.value, c2.value))
Функция format ()
используется для аккуратного вывода данных.
на консоли.
$ ./read_cells2.py Количество предметов монеты 23 стулья 3 карандаши 5 бутылки 8 книги 30
Это результат работы программы.
Openpyxl итерация по строкам
Метод iter_rows
возвращает ячейки из
лист в виде строк.
iterating_by_rows.py
#! / usr / bin / env python из openpyxl import Workbook book = Рабочая тетрадь () лист = книга.активный строки = ( (88, 46, 57), (89, 38, 12), (23, 59, 78), (56, 21, 98), (24, 18, 43), (34, 15, 67) ) для ряда в ряды: sheet.append (строка) для строки в sheet.iter_rows (min_row = 1, min_col = 1, max_row = 6, max_col = 3): для ячейки в строке: print (cell.value, end = "") Распечатать() book.save ('iterbyrows.xlsx')
Пример перебирает данные строка за строкой.
для строки в sheet.iter_rows (min_row = 1, min_col = 1, max_row = 6, max_col = 3):
Мы указываем границы итерации.
$ ./iterating_by_rows.py 88 46 57 89 38 12 23 59 78 56 21 98 24 18 43 34 15 67
Это результат примера.
Openpyxl итерация по столбцам
Метод iter_cols
возвращает ячейки из
лист в виде столбцов.
iterating_by_columns.py
#! / usr / bin / env python из openpyxl import Workbook book = Рабочая тетрадь () sheet = book.active строки = ( (88, 46, 57), (89, 38, 12), (23, 59, 78), (56, 21, 98), (24, 18, 43), (34, 15, 67) ) для ряда в ряды: лист.добавить (строка) для строки в sheet.iter_cols (min_row = 1, min_col = 1, max_row = 6, max_col = 3): для ячейки в строке: print (cell.value, end = "") Распечатать() book.save ('iterbycols.xlsx')
В примере выполняется итерация по столбцу данных по столбцу.
$ ./iterating_by_columns.py 88 89 23 56 24 34 46 38 59 21 18 15 57 12 78 98 43 67
Это результат примера.
Статистика
В следующем примере нам нужно создать файл xlsx, содержащий
числа.Например, мы создали 25 рядов чисел в
10 столбцов с функцией RANDBETWEEN ()
.
mystats.py
#! / usr / bin / env python импортировать openpyxl импортировать статистику как статистику book = openpyxl.load_workbook ('numbers.xlsx', data_only = True) sheet = book.active rows = sheet.rows values = [] для ряда в ряды: для ячейки в строке: values.append (ячейка.значение) print ("Количество значений: {0}". format (len (values))) print ("Сумма значений: {0}". format (sum (values))) print ("Минимальное значение: {0}".формат (мин. (значения))) print ("Максимальное значение: {0}". format (max (values))) print ("Среднее: {0}". формат (stats.mean (значения))) print ("Медиана: {0}". формат (stats.median (значения))) print ("Стандартное отклонение: {0}". format (stats.stdev (values))) print ("Отклонение: {0}". формат (статистика. отклонение (значения)))
В этом примере мы считываем все значения из таблицы и вычисляем некоторую базовую статистику.
импортировать статистику как статистику
Модуль статистики
импортирован для обеспечения некоторых статистических функций,
например, медиана и дисперсия.
book = openpyxl.load_workbook ('numbers.xlsx', data_only = True)
Используя опцию data_only
, мы получаем значения из ячеек, а не из формулы.
rows = sheet.rows
Получаем все непустые ряды ячеек.
для ряда в ряды: для ячейки в строке: values.append (ячейка.значение)
В двух циклах for формируем список целочисленных значений из ячеек.
print ("Количество значений: {0}".формат (len (значения))) print ("Сумма значений: {0}". format (sum (values))) print ("Минимальное значение: {0}". format (min (values))) print ("Максимальное значение: {0}". format (max (values))) print ("Среднее: {0}". формат (stats.mean (значения))) print ("Медиана: {0}". формат (stats.median (значения))) print ("Стандартное отклонение: {0}". format (stats.stdev (values))) print ("Отклонение: {0}". формат (статистика. отклонение (значения)))
Мы вычисляем и печатаем математическую статистику значений. Некоторые из
функции встроены, остальные импортируются со статистикой
модуль.
$ ./mystats.py Количество значений: 312 Сумма значений: 15877 Минимальное значение: 0 Максимальное значение: 100 Среднее значение: 50,88782051282051 Медиана: 54,0 Стандартное отклонение: 28,459203819700967 Отклонение: 809.9262820512821
Это пример вывода.
Openpyxl фильтрация и сортировка данных
Лист имеет атрибут auto_filter
, который позволяет
для установки условий фильтрации и сортировки.
Обратите внимание, что Openpyxl устанавливает условия, но мы должны их применять.
внутри приложения Электронная таблица.
filter_sort.py
#! / usr / bin / env python из openpyxl import Workbook wb = Книга () sheet = wb.active данные = [ ['Элемент', 'Цвет'], ['ручка', 'коричневый'], ['книга', 'черный'], ['тарелка', 'белый'], ['стул', 'коричневый'], ['монета', 'золото'], ['кровать', 'коричневый'], ['блокнот', 'белый'], ] для r в данных: sheet.append (r) sheet.auto_filter.ref = 'A1: B8' sheet.auto_filter.add_filter_column (1, ['коричневый', 'белый']) sheet.auto_filter.add_sort_condition ('B2: B8') wb.сохранить ('отфильтрованный.xlsx')
В этом примере мы создаем лист с элементами и их цветами.
Устанавливаем фильтр и условие сортировки.
Размеры Openpyxl
Чтобы получить те ячейки, которые действительно содержат данные, мы можем использовать измерения.
sizes.py
#! / usr / bin / env python из openpyxl import Workbook book = Рабочая тетрадь () sheet = book.active лист ['A3'] = 39 лист ['B3'] = 19 rows = [ (88, 46), (89, 38), (23, 59), (56, 21), (24, 18), (34, 15) ] для ряда в ряды: лист.добавить (строка) печать (лист. размеры) print ("Минимальная строка: {0}". format (sheet.min_row)) print ("Максимальное количество строк: {0}". format (sheet.max_row)) print ("Минимальный столбец: {0}". format (sheet.min_column)) print ("Максимальный столбец: {0}". format (sheet.max_column)) для c1, c2 на листе [размеры листа]: печать (c1.value, c2.value) book.save ('sizes.xlsx')
В этом примере вычисляются размеры двух столбцов данных.
лист ['A3'] = 39 лист ['B3'] = 19 rows = [ (88, 46), (89, 38), (23, 59), (56, 21), (24, 18), (34, 15) ] для ряда в ряды: лист.добавить (строка)
Добавляем данные в рабочий лист. Обратите внимание, что мы начинаем добавлять с
третий ряд.
печать (лист. размеры)
Свойство Dimensions
возвращает верхний левый и нижний правый
ячейка области непустых ячеек.
print ("Минимальная строка: {0}". format (sheet.min_row)) print ("Максимальное количество строк: {0}". format (sheet.max_row))
Используя свойства min_row
и max_row
, мы получаем минимум
и максимальная строка, содержащая данные.
print ("Минимальный столбец: {0}". format (sheet.min_column)) print ("Максимальный столбец: {0}". format (sheet.max_column))
Со свойствами min_column
и max_column
мы получаем минимум
и максимальный столбец, содержащий данные.
для c1, c2 на листе [размеры листа]: печать (c1.value, c2.value)
Мы перебираем данные и выводим их на консоль.
$ ./dimensions.py A3: B9 Минимальный ряд: 3 Максимальный ряд: 9 Минимальный столбец: 1 Максимальный столбец: 2 39 19 88 46 89 38 23 59 56 21 24 18 34 15
Это результат примера.
листов
В каждой книге может быть несколько листов.
Рис.: Листы
Давайте составим рабочую тетрадь с этими тремя листами.
листов.py
#! / usr / bin / env python импортировать openpyxl книга = openpyxl.load_workbook ('листов.xlsx') печать (book.get_sheet_names ()) active_sheet = book.active печать (тип (active_sheet)) sheet = book.get_sheet_by_name ("Март") печать (название листа)
Программа работает с листами Excel.
печать (книга.get_sheet_names ())
Метод get_sheet_names
возвращает имена
доступные листы в книге.
active_sheet = book.active печать (тип (active_sheet))
Достаем активный лист и выводим его тип на терминал.
sheet = book.get_sheet_by_name ("Март")
Мы получаем ссылку на лист с помощью метода get_sheet_by_name ()
.
печать (название листа)
Название полученного листа печатается на терминале.
$ ./sheets.py ['Январь февраль март'] <класс 'openpyxl.worksheet.worksheet.Worksheet'> марш
Это результат работы программы.
листов2.py
#! / usr / bin / env python импортировать openpyxl книга = openpyxl.load_workbook ('листов.xlsx') book.create_sheet («Апрель») печать (book.sheetnames) sheet1 = book.get_sheet_by_name ("Январь") book.remove_sheet (sheet1) печать (book.sheetnames) book.create_sheet ("Январь", 0) печать (book.sheetnames) книга.сохранить ('листов2.xlsx')
В этом примере мы создаем новый лист.
book.create_sheet («Апрель»)
Новый лист создается с помощью метода create_sheet
.
печать (book.sheetnames)
Имена листов также могут отображаться с атрибутом имена листов
.
book.remove_sheet (sheet1)
Лист можно удалить с помощью метода remove_sheet
.
book.create_sheet ("Январь", 0)
Новый лист может быть создан в указанной позиции; в нашем случае
мы создаем новый лист в позиции с индексом 0.
$ ./sheets2.py ['Январь февраль март апрель'] ['Февраль', 'март', 'апрель'] ['Январь февраль март апрель']
Это результат работы программы.
Можно изменить цвет фона рабочего листа.
листов3.py
#! / usr / bin / env python импортировать openpyxl книга = openpyxl.load_workbook ('листов.xlsx') sheet = book.get_sheet_by_name ("Март") sheet.sheet_properties.tabColor = "0072BA" book.save ('листов3.xlsx ')
В примере изменяется цвет фона листа под названием
«Марш».
sheet.sheet_properties.tabColor = "0072BA"
Мы меняем свойство tabColor
на новый цвет.
Рис.: Цвет фона рабочего листа
Цвет фона третьего листа был изменен на синий.
цвет.
Объединение ячеек
Ячейки могут быть объединены методом merge_cells
и не объединены.
с методом unmerge_cells
.Когда мы объединяем ячейки, все ячейки
но верхний левый удаляется с листа.
merging_cells.py
#! / usr / bin / env python из openpyxl import Workbook из openpyxl.styles import Alignment book = Рабочая тетрадь () sheet = book.active sheet.merge_cells ('A1: B2') ячейка = sheet.cell (строка = 1, столбец = 1) cell.value = 'Солнечный день' cell.alignment = Выравнивание (по горизонтали = 'по центру', по вертикали = 'по центру') book.save ('merging.xlsx')
В этом примере мы объединяем четыре ячейки: A1, B1, A2 и B2.Текст в
последняя ячейка находится по центру.
из openpyxl.styles import Alignment
Чтобы центрировать текст в последней ячейке, мы используем выравнивание
класс из модуля openpyxl.styles
.
sheet.merge_cells ('A1: B2')
Мы объединяем четыре ячейки методом merge_cells
.
ячейка = sheet.cell (строка = 1, столбец = 1)
Получаем последнюю ячейку.
cell.value = 'Солнечный день' ячейка.alignment = Выравнивание (по горизонтали = 'центр', по вертикали = 'центр')
Мы устанавливаем текст в объединенную ячейку и обновляем ее выравнивание.
Рис.: Объединенные ячейки
закрепленные области Openpyxl
Когда мы фиксируем панели, мы оставляем видимой область листа при прокрутке до
другая область рабочего листа.
freezing.py
#! / usr / bin / env python из openpyxl import Workbook из openpyxl.styles import Alignment book = Рабочая тетрадь () sheet = book.active лист.freeze_panes = 'B2' book.save ('freezing.xlsx')
В примере фиксируются панели на ячейку B2.
sheet.freeze_panes = 'B2'
Чтобы заморозить панели, мы используем свойство freeze_panes
.
Формулы Openpyxl
В следующем примере показано, как использовать формулы. openpyxl
делает
не делать расчетов; записывает формулы в ячейки.
formulas.py
#! / usr / bin / env python из openpyxl import Workbook book = Рабочая тетрадь () лист = книга.активный строки = ( (34, 26), (88, 36), (24, 29), (15, 22), (56, 13), (76, 18) ) для ряда в ряды: sheet.append (строка) ячейка = sheet.cell (строка = 7, столбец = 2) cell.value = "= СУММ (A1: B6)" cell.font = cell.font.copy (жирный шрифт = True) book.save ('formulas.xlsx')
В примере мы вычисляем сумму всех значений
с функцией СУММ ()
и стиль
вывод жирным шрифтом.
строки = ( (34, 26), (88, 36), (24, 29), (15, 22), (56, 13), (76, 18) ) для ряда в ряды: лист.добавить (строка)
Создаем два столбца данных.
ячейка = sheet.cell (строка = 7, столбец = 2)
Получаем ячейку, в которой показываем результат расчета.
cell.value = "= СУММ (A1: B6)"
Записываем формулу в ячейку.
cell.font = cell.font.copy (жирный шрифт = True)
Меняем стиль шрифта.
Рис.: Расчет суммы значений
изображений Openpyxl
В следующем примере мы показываем, как вставить изображение на лист.
write_image.py
#! / usr / bin / env python из openpyxl import Workbook из openpyxl.drawing.image импорт изображения book = Рабочая тетрадь () sheet = book.active img = Изображение ("icesid.png") sheet ['A1'] = 'Это Сид' sheet.add_image (img, 'B2') book.save ("sheet_image.xlsx")
В этом примере мы записываем изображение на лист.
из openpyxl.drawing.image импорт изображения
Работаем с классом Image
от
openpyxl.чертеж. изображение
модуль.
img = Изображение ("icesid.png")
Создается новый класс Image
. The icesid.png
изображение находится в текущем рабочем каталоге.
sheet.add_image (img, 'B2')
Мы добавляем новое изображение с помощью метода add_image
.
Графики Openpyxl
Библиотека openpyxl
поддерживает создание различных диаграмм, в том числе
гистограммы, линейные диаграммы, диаграммы с областями, пузырьковые диаграммы, точечные диаграммы и круговые диаграммы.
Согласно документации, openpyxl
поддерживает создание диаграмм в
только рабочий лист. Диаграммы в существующих книгах будут потеряны.
create_bar_chart.py
#! / usr / bin / env python из openpyxl import Workbook из импорта openpyxl.chart ( Ссылка, Серии, BarChart ) book = Рабочая тетрадь () sheet = book.active rows = [ («США», 46), («Китай», 38), («Великобритания», 29), («Россия», 22), («Южная Корея», 13), («Германия», 11) ] для ряда в ряды: лист.добавить (строка) data = Ссылка (лист, min_col = 2, min_row = 1, max_col = 2, max_row = 6) категории = Ссылка (лист, min_col = 1, min_row = 1, max_row = 6) chart = BarChart () chart.add_data (данные = данные) chart.set_categories (категории) chart.legend = Нет chart.y_axis.majorGridlines = Нет chart.varyColors = True chart.title = "Золотые олимпийские медали в Лондоне" sheet.add_chart (диаграмма, «A8») book.save ("bar_chart.xlsx")
В этом примере мы создаем гистограмму, чтобы показать количество олимпийских
золотые медали от каждой страны в Лондоне в 2012 году.
из импорта openpyxl.chart ( Ссылка, Серии, BarChart )
В модуле openpyxl.chart
есть инструменты для работы с диаграммами.
book = Рабочая тетрадь () sheet = book.active
Создана новая книга.
rows = [ («США», 46), («Китай», 38), («Великобритания», 29), («Россия», 22), («Южная Корея», 13), («Германия», 11) ] для ряда в ряды: sheet.append (строка)
Мы создаем некоторые данные и добавляем их в ячейки активного листа.
data = Ссылка (лист, min_col = 2, min_row = 1, max_col = 2, max_row = 6)
С помощью класса Reference
мы ссылаемся на строки на листе, которые
представляют данные. В нашем случае это номера золотых олимпийских медалей.
категории = Ссылка (лист, min_col = 1, min_row = 1, max_row = 6)
Создаем ось категорий. Ось категорий — это ось с данными
рассматривается как последовательность нечисловых текстовых меток. В нашем случае мы имеем
текстовые метки, представляющие названия стран.
chart = BarChart () chart.add_data (данные = данные) chart.set_categories (категории)
Создаем гистограмму и задаем ей данные и категории.
chart.legend = Нет chart.y_axis.majorGridlines = Нет
Используя атрибуты legend
и majorGridlines
, мы
отключите легенды и основные линии сетки.
chart.varyColors = True
Установка разного цвета от
до Истинный
, каждая полоса имеет свой
цвет.
chart.title = "Золотые олимпийские медали в Лондоне"
Для диаграммы задается заголовок.
sheet.add_chart (диаграмма, «A8»)
Созданная диаграмма добавляется на лист методом add_chart
.
Рис.: Гистограмма
В этом руководстве мы работали с библиотекой openpyxl. Мы прочитали данные
из файла Excel, записанные данные в файл Excel.
Посетите учебник Python или
список всех руководств по Python.
.
Python Language — OpenPyXL | Учебник python
Пример
OpenPyXL — это модуль для управления и создания книг xlsx / xlsm / xltx / xltm
в памяти.
Управление и чтение существующей книги:
импортировать openpyxl как opx
# Чтобы изменить существующую wookbook, мы нашли ее, указав путь к ней
workbook = opx.load_workbook (workbook_path)
load_workbook ()
содержит параметр read_only
, установка этого значения на True
загрузит книгу как read_only, это полезно при чтении больших файлов xlsx
:
рабочая тетрадь = opx.load_workbook (workbook_path, read_only = True)
После того, как вы загрузили книгу в память, вы можете получить доступ к отдельным листам с помощью книги . листов
first_sheet = workbook.worksheets [0]
Если вы хотите указать имя доступных листов, вы можете использовать workbook.get_sheet_names ()
.
sheet = workbook.get_sheet_by_name ('Имя листа')
Наконец, к строкам листа можно получить доступ с помощью листа.ряды
. Чтобы перебирать строки на листе, используйте:
для ряда в лист. Строк:
напечатать строку [0]. значение
Поскольку каждая строка
в строках
представляет собой список из Cell
s, используйте Cell.value
, чтобы получить содержимое Cell.
Создание новой книги в памяти:
# Вызов функции Workbook () создает новую книгу в памяти
wb = opx.Workbook ()
# Затем мы можем создать новый лист в wb
ws = wb.create_sheet ('Sheet Name', 0) # 0 относится к индексу порядка листов в wb
Некоторые свойства вкладок можно изменить через openpyxl, например tabColor
:
ws.sheet_properties.tabColor = 'FFC0CB'
Чтобы сохранить нашу созданную книгу, мы заканчиваем с:
wb.save ('filename.xlsx')
.Учебник
Openpyxl — Руководство по библиотеке Python Excel
Openpyxl
Это
статья представляет собой руководство по лучшей библиотеке Python Excel Openpyxl для решения
с файлами Excel 2010 xlsx / xlsm. В этом руководстве вы узнаете, как работать с файлами Excel или электронными таблицами в Python с помощью пакета Openpyxl. Ты выучишь
для чтения, записи, создания, загрузки и управления файлами Excel.
Openpyxl
Openpyxl — это
Библиотека Python для чтения, записи и изменения Excel 2010 или новее
xlsx / xlsm / xltm / xltx файлы.Python
Programming предоставляет различные пакеты для работы с электронными таблицами,
самым эффективным и гибким является этот модуль. Openpyxl работает с
xlsx, и он не будет работать с более ранними версиями Excel.
с расширением xls.
Openpyxl Загрузить
Если хотите
чтобы загрузить пакет openpyxl на свой компьютер, вы можете использовать этот источник.
Он также предоставляет вам информацию, если вы не уверены, какой
версию на выбор.
Как установить Openpyxl с
пункт
Если вы хотите установить
openpyxl с помощью команды pip используйте эту строку кода
$ установка пункта
openpyxl
Вы также можете
необходимо установить библиотеку подушек для добавления изображений (jpeg, png, bmp,
…) в вашем файле openpyxl.
$ pip install подушка
Импорт
Openpyxl в Python
После
успешная установка, пришло время использовать openpyxl в python. Назвать это
используйте оператор импорта, например
>>>
импорт openpyxl
или можете
нужно импортировать только Workbook
>>>
из openpyxl import Workbook
Использование
Примеры
Учебник
1. Создать
рабочая тетрадь
2. Добавить лист
3. Удалить
лист
4.Загрузить
рабочая тетрадь
5. Сохранить
рабочая тетрадь
6. Закрыть
рабочая тетрадь
Студенты, не изучавшие информатику
Помимо изучающих информатику, мы также специализируемся на преподавании и обучении Python от вводных до продвинутых модулей, таких как Pandas и машинное обучение, до изучающих Python без информатики.
Если вы не из CS Мы научим вас, что между вашими навыками Python и навыками Python программистов CS не будет разницы.
Присоединяйтесь
.
Python Language — OpenPyXL | Учебник python
Ejemplo
OpenPyXL — это модуль для манипулирования и создания библиотек трабах xlsx / xlsm / xltx / xltm
в память.
Manipulando y leyendo un libro existente:
import openpyxl as opx
# Чтобы изменить существующую wookbook, мы нашли ее, указав путь к ней
workbook = opx.load_workbook (workbook_path)
load_workbook ()
contiene el parámetro read_only
, estableciendo esto en True
cargará el libro como read_only, esto es útil cuando se leen archivos xlsx12:
больших книг =
больших книгload_workbook (workbook_path, read_only = True)
Una vez que haya cargado el libro en la memoria, puede accept a las hojas Individuals using workbook.sheets
first_sheet = workbook.worksheets [0]
Si desea especificar el nombre de una hoja disponible, puede usar workbook.get_sheet_names ()
.
sheet = workbook.get_sheet_by_name ('Имя листа')
Finalmente, se puede accept a las filas de la hoja utilizando sheet.ряды
. Para iterar sobre las filas de una hoja, используйте:
для строки в листе. Строки:
напечатать строку [0]. значение
Dado que cada row
en rows
es una lista de Cell
, используйте Cell.value
для получения содержимого Celda.
Creando un nuevo libro de ejercicios en la memoria:
# Вызов функции Workbook () создает новую книгу в памяти
wb = opx.Workbook ()
# Затем мы можем создать новый лист в wb
ws = wb.create_sheet ('Sheet Name', 0) # 0 относится к индексу порядка листов в wb
Se pueden cambiar varias propiedades de la pestaña a través de openpyxl, por ejemplo el tabColor
:
ws.sheet_properties.tabColor = 'FFC0CB'
Para guardar nuestro libro creado terminamos con:
wb.save ('filename.xlsx')
.