openpyxl Python

Содержание
Введение
Примеры
Похожие статьи

Введение

Источник - Tech With Tim

Установка

python -m pip install openpyxl

Collecting openpyxl Downloading openpyxl-3.1.5-py2.py3-none-any.whl.metadata (2.5 kB) Collecting et-xmlfile (from openpyxl) Downloading et_xmlfile-2.0.0-py3-none-any.whl.metadata (2.7 kB) Downloading openpyxl-3.1.5-py2.py3-none-any.whl (250 kB) Downloading et_xmlfile-2.0.0-py3-none-any.whl (18 kB) Installing collected packages: et-xmlfile, openpyxl Successfully installed et-xmlfile-2.0.0 openpyxl-3.1.5

Примеры

Рассмотрим проект со следующией структурой:

openpyxl/ ├── Grades.xlsx ├── demo.py └── venv

alt
openpyxl
Excel

from openpyxl import load_workbook wb = load_workbook('Grades.xlsx') ws = wb.active print(ws) print(ws['A1']) print(ws['A1'].value)

python .\demo.py

<Worksheet "Grades"> <Cell 'Grades'.A1> Name

from openpyxl import load_workbook wb = load_workbook('Grades.xlsx') ws = wb.active print(ws['A2'].value) ws['A2'].value = "Test" print(ws['A2'].value) wb.save('Grades.xlsx')

python .\demo.py

Joe Test

alt
openpyxl
Excel

Создадим три новые вкладки Sheet1, Sheet2, Sheet3

alt
openpyxl
Excel

from openpyxl import load_workbook wb = load_workbook('Grades.xlsx') ws = wb.active print(wb.sheetnames) wb.create_sheet("Test") print(wb.sheetnames)

python .\demo.py

['Grades', 'Sheet1', 'Sheet2', 'Sheet3'] ['Grades', 'Sheet1', 'Sheet2', 'Sheet3', 'Test']

Создадим новый файл

from openpyxl import Workbook wb = Workbook() ws = wb.active ws.title = "Partners" ws.append(['Aviasales', 'Beget', 'OTUS']) wb.save('partners.xlsx')

python .\demo.py

alt
openpyxl
Excel

Создадим новый файл

from openpyxl import Workbook wb = Workbook() ws = wb.active ws.title = "Partners" ws.append(['Aviasales', 'Beget', 'OTUS']) ws.append(['Tickets', 'Hosting', 'Learning']) ws.append(['Visit them', 'to support']) ws.append(['this site']) wb.save('partners.xlsx')

python .\demo.py

alt
openpyxl
Excel

Пробежимся по определённым полям. Чтобы задавать букву явно можно использовать функцию chr()

>>> chr(65) 'A' >>> chr(66) 'B'

from openpyxl import load_workbook wb = load_workbook('partners.xlsx') ws = wb.active for row in range(1, 5): for col in range(0, 3): char = chr(65 + col) print(ws[char + str(row)].value)

python .\demo.py

Aviasales Beget OTUS Tickets Hosting Learning Visit them to support None this site None None

Проще и понятнее будет вариант с использованием встроенной функции get_column_letter() для определения буквы.

from openpyxl import load_workbook from openpyxl.utils import get_column_letter wb = load_workbook('partners.xlsx') ws = wb.active for row in range(1, 5): for col in range(1, 4): char = get_column_letter(col) print(ws[char + str(row)].value)

python .\demo.py

Aviasales Beget OTUS Tickets Hosting Learning Visit them to support None this site None None

РЕКЛАМА от Яндекса. Может быть недоступна в вашем регионе

Конец рекламы. Если там пусто считайте это рекламой моей телеги

Автор статьи: Андрей Олегович

Похожие статьи
future
Type Hints
Списки []
list comprehension: Абстракция списка
Python
if, elif, else
Циклы
Абстракция множеств и словарей

РЕКЛАМА хостинга Beget, которым я пользуюсь более десяти лет

Изображение баннера

Конец рекламы хостинга Beget, который я всем рекомендую.

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: