Модуль openpyxl Python позволяет нам читать и изменять электронные таблицы Excel в программах на Python. Поскольку Microsoft использует формат файлов с Office 2007, это делает Office Excel, LibreOffice Calc и OpenOffice Calc полностью совместимыми, что означает, что модуль openpyxl также может обрабатывать электронные таблицы генерируется из этого программного обеспечения.
import datetime
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws['A1'] = 42
ws.append([1, 2, 3])
ws['A2'] = datetime.datetime.now()
wb.save("sample.xlsx")Используя модуль python-docx, Python может создавать и изменять документы Word. Конечно, документы Word здесь - это не просто документы с расширением docx, созданные программным обеспечением Microsoft Office. LibreOffice Writer и OpenOffice Writer - это бесплатное программное обеспечение для обработки текста.
"""
Python 3.10 создание Word документа
Название файла '03.Word.py'
Version: 0.1
Author: Andrej Marinchenko
Date: 2023-04-27
"""
from docx import Document
from docx.shared import Inches
document = Document()
document.add_heading('Оглавление документа', 0)
p = document.add_paragraph('Простой абзац, имеющий некоторые символы ')
p.add_run('жирные').bold = True
p.add_run(' а некоторые ')
p.add_run('курсивом.').italic = True
document.add_heading('Заголовок, уровень 1', level=1)
document.add_paragraph('Интенсивная цитата', style='Intense Quote')
document.add_paragraph(
'первый элемент в неупорядоченном списке', style='List Bullet'
)
document.add_paragraph(
'первый элемент в упорядоченном списке', style='List Number'
)
document.add_picture('./res/guido.jpg', width=Inches(1.25))
records = (
(3, '101', 'Спам'),
(7, '422', 'тест'),
(4, '631', 'проверка')
)
table = document.add_table(rows=1, cols=3)
hdr_cells = table.rows[0].cells
hdr_cells[0].text = 'столбец 1'
hdr_cells[1].text = 'столбец 2'
hdr_cells[2].text = 'столбец 3'
for qty, id, desc in records:
row_cells = table.add_row().cells
row_cells[0].text = str(qty)
row_cells[1].text = id
row_cells[2].text = desc
document.add_page_break()
document.save('./res/demo.docx')Программы для обработки изображений и офисных документов часто появляются в реальной разработке. Хотя в стандартной библиотеке Python нет модуля, который напрямую поддерживает эти операции, мы можем выполнять эти операции с помощью сторонних модулей в экосистеме Python.
Если у вас есть опыт рисования красками, вы должны знать, что вы можете получить другие цвета, смешивая красную, желтую и синюю краски. Фактически, эти три цвета - это то, что мы называем тремя основными цветами искусства. В компьютере мы можем наложить три цвета: красный, зеленый и синий в разных пропорциях, чтобы объединить их в другие цвета, поэтому мы обычно выражаем цвет как значение RGB или значение RGBA (где A представляет альфа-канал, который определяет пиксели, проходящие через изображение, то есть прозрачность).
| цвет | RGBA Значение | цвет | RGBA Значение |
|---|---|---|---|
| White | (255, 255, 255, 255) | Red | (255, 0, 0, 255) |
| Green | (0, 255, 0, 255) | Blue | (0, 0, 255, 255) |
| Gray | (128, 128, 128, 255) | Yellow | (255, 255, 0, 255) |
| Black | (0, 0, 0, 255) | Purple | (128, 0, 128, 255) |
Для изображения, представленного последовательностью чисел, самая маленькая единица - это маленький квадрат одного цвета на изображении. Эти маленькие квадраты имеют четкое положение и значение цвета, а цвет и положение этих маленьких квадратов определяют окончательный вид изображения, они являются неделимыми единицами, которые мы обычно называем пикселями. Каждое изображение содержит определенное количество пикселей, которые определяют размер изображения на экране.
Pillow это ответвление, разработанное на основе известной библиотеки обработки изображений Python PIL. С помощью Pillow можно реализовать различные операции, такие как сжатие и обработка изображений. Вы можете использовать следующую команду для установки Pillow.
pip install pillowСамым важным в Pillow является класс Image, который необходимо использовать для чтения и обработки изображений.
>>> from PIL import Image
>>>
>>> image = Image.open('./res/guido.jpg')
>>> image.format, image.size, image.mode
('JPEG', (500, 750), 'RGB')
>>> image.show()- Обрезать изображение
>>> image = Image.open('./res/guido.jpg')
>>> rect = 80, 20, 310, 360
>>> image.crop(rect).show()- Создать миниатюру
>>> image = Image.open('./res/guido.jpg')
>>> size = 128, 128
>>> image.thumbnail(size)
>>> image.show()- Масштабировать и вставлять изображения
>>> image1 = Image.open('./res/luohao.png')
>>> image2 = Image.open('./res/guido.jpg')
>>> rect = 80, 20, 310, 360
>>> guido_head = image2.crop(rect)
>>> width, height = guido_head.size
>>> image1.paste(guido_head.resize((int(width / 1.5), int(height / 1.5))), (172, 40))- Повернуть и перевернуть
>>> image = Image.open('./res/guido.png')
>>> image.rotate(180).show()
>>> image.transpose(Image.FLIP_LEFT_RIGHT).show()- Рабочие пиксели
>>> image = Image.open('./res/guido.jpg')
>>> for x in range(80, 310):
... for y in range(20, 360):
... image.putpixel((x, y), (128, 128, 128))
...
>>> image.show()- Эффект фильтра
>>> from PIL import Image, ImageFilter
>>>
>>> image = Image.open('./res/guido.jpg')
>>> image.filter(ImageFilter.CONTOUR).show()Примеры:
- 01.Excel.py
- 02.Excel.py
- 03.Word.py
- 04.Word.py
- 05.pillow.py
- 06.pdf.py