Пакет для работы с Excel файлами
Project description
DGExcel
Пакет для работы с Excel файлами с модульными зависимостями. Поддерживает как современные (.xlsx), так и старые (.xls) форматы Excel.
Особенности
- 🚀 Простой API - единый интерфейс для всех форматов Excel
- 📦 Модульные зависимости - устанавливайте только то, что нужно
- ⚡ Автоматическое определение формата - по расширению файла
- 🎨 Поддержка стилей - границы, шрифты, выравнивание
- 📊 Чтение и запись - полная поддержка операций с Excel файлами
- 🔄 Обратная совместимость - работа со старыми .xls файлами
Установка
Базовая установка (только .xlsx)
pip install dgexcel
С поддержкой .xls файлов
pip install dgexcel[xls]
Полная установка (все возможности)
pip install dgexcel[full]
Быстрый старт
Создание простого Excel файла
from dgexcel import create_excel
data = [
{'name': 'John', 'age': 25, 'city': 'New York'},
{'name': 'Jane', 'age': 30, 'city': 'London'},
{'name': 'Bob', 'age': 35, 'city': 'Tokyo'}
]
# Создание xlsx файла (по умолчанию)
create_excel(data, 'people.xlsx', header=['Name', 'Age', 'City'])
# Создание xls файла (требует [xls])
create_excel(data, 'people.xls', header=['Name', 'Age', 'City'])
Использование классов ExcelX и Excel
from dgexcel import ExcelX, Excel
# Работа с xlsx файлами
excel_x = ExcelX()
excel_x.create_simple_excel(
'data.xlsx',
[{'product': 'Laptop', 'price': 999}, {'product': 'Mouse', 'price': 25}],
column_names=['Product', 'Price'],
worksheet='Products'
)
# Работа с xls файлами (требует [xls])
excel_old = Excel()
excel_old.create_simple_excel(
'data.xls',
[{'product': 'Keyboard', 'price': 75}, {'product': 'Monitor', 'price': 200}],
column_names=['Product', 'Price'],
worksheet='Products'
)
Чтение Excel файлов
from dgexcel import read_excel
# Чтение xlsx файла
data_xlsx = read_excel('people.xlsx', ['name', 'age', 'city'])
print(data_xlsx)
# Чтение xls файла (требует [xls])
data_xls = read_excel('people.xls', ['name', 'age', 'city'])
print(data_xls)
Расширенное использование
Работа со стилями
from dgexcel import ExcelX, BORDER, FONT
excel = ExcelX()
# Определение стилей
header_style = {
'bold': True,
'font': {'size': 12, 'color': 'FFFFFF'},
'border': BORDER['all'],
'alignment': {'horizontal': 'center'}
}
cell_style = {
'border': BORDER['all'],
'alignment': {'horizontal': 'left'}
}
# Создание файла со стилями
data = [['Laptop', 999], ['Mouse', 25]]
excel.create_simple_excel(
'styled.xlsx',
data,
column_names=['Product', 'Price'],
styles=[header_style, cell_style]
)
Построчная работа с данными
from dgexcel import ExcelX
excel = ExcelX()
excel.open_file('detailed.xlsx')
# Выбор листа
excel.select_worksheet('Data')
# Добавление данных по ячейкам
excel.add_cell(1, 1, 'Product', {'bold': True})
excel.add_cell(1, 2, 'Price', {'bold': True})
# Добавление строки
excel.add_row(2, ['Laptop', 999])
# Добавление столбца
excel.add_column(3, [25, 75, 150], start_row=2)
# Объединение ячеек
excel.add_merge_cell(5, 1, 5, 3, 'Total', {'bold': True})
# Сохранение файла
excel.save_file()
Настройка размеров ячеек
from dgexcel import ExcelX
excel = ExcelX()
excel.open_file('formatted.xlsx')
# Установка ширины столбцов
excel.set_columns_width([20, 15, 10])
# Установка высоты строк
excel.set_rows_height([25, 20, 20, 20])
# Настройка отдельной ячейки
excel.set_cell_dimension(1, 1, height=30, width=25)
excel.save_file()
API Reference
Основные классы
ExcelX(filename=None)
Класс для работы с .xlsx файлами.
Методы:
open_file(filename, rewrite=True)- открытие/создание файлаcreate_simple_excel()- быстрое создание файлаadd_worksheet(name)- добавление листаselect_worksheet(name)- выбор активного листаadd_cell(row, col, value, style)- добавление ячейкиadd_row(row, values, start_col, styles)- добавление строкиadd_column(col, values, start_row, styles)- добавление столбцаread_file()- чтение данных из файлаsave_file()- сохранение файла
Excel(filename=None)
Класс для работы с .xls файлами (требует [xls]).
Имеет тот же API что и ExcelX.
Утилитные функции
create_excel(data, filename, header, column_width, worksheet, start_row, borders)
Универсальная функция для создания Excel файлов.
read_excel(filename, excel_header, sheet_name, int_columns, date_columns, start_row)
Универсальная функция для чтения Excel файлов.
Константы стилей
BORDER
Словарь с predefined стилями границ:
BORDER['none']- без границBORDER['all']- границы со всех сторонBORDER['left'],BORDER['right'], etc. - границы с отдельных сторон
FONT
Настройки шрифтов по умолчанию.
NUMBER_FORMAT
Форматы чисел для дат и времени.
Примеры стилей
# Заголовок таблицы
header_style = {
'bold': True,
'border': BORDER['bottom'],
'alignment': {'horizontal': 'center', 'wrap_text': True}
}
# Ячейка с данными
cell_style = {
'border': BORDER['all'],
'alignment': {'horizontal': 'left'}
}
# Числовой формат
number_style = {
'number_format': '#,##0.00',
'alignment': {'horizontal': 'right'}
}
# Дата
date_style = {
'number_format': 'dd.mm.yyyy',
'alignment': {'horizontal': 'center'}
}
Обработка ошибок
from dgexcel import Excel, ImportError
try:
excel = Excel()
excel.create_simple_excel('test.xls', [{'data': 'test'}])
except ImportError as e:
print("Для работы с .xls файлами установите: pip install dgexcel[xls]")
except Exception as e:
print(f"Ошибка: {e}")
Миграция с divinegift версии
Если вы использовали предыдущие версии пакета:
# Старый код
from divinegift.excel import create_excel, read_excel
# Новый код
from dgexcel import create_excel, read_excel
# API остается совместимым!
Поддержка
- Python: 3.10+
- Форматы: .xlsx, .xls
- Кодировка: UTF-8
Лицензия
MIT License
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Changelog
v1.0.0
- Первый стабильный релиз
- Поддержка .xlsx и .xls форматов
- Модульная система зависимостей
- Полный API для работы с Excel файлами
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dgexcel-1.0.0a0.tar.gz.
File metadata
- Download URL: dgexcel-1.0.0a0.tar.gz
- Upload date:
- Size: 15.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f08ea3113764b45fa74813156e79c84f20f8ce4566dc191a17f3a48cd4140b8
|
|
| MD5 |
711d6aaeac42d7f49f6ade270dc12177
|
|
| BLAKE2b-256 |
1cc28161d9e733db4d963f19373a7753777600059fdf3cbf96c8f73a5499acf6
|
File details
Details for the file dgexcel-1.0.0a0-py3-none-any.whl.
File metadata
- Download URL: dgexcel-1.0.0a0-py3-none-any.whl
- Upload date:
- Size: 15.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc5569a5b7762efacb128bdd42587b8fbf74b7da27149ff0291a1dedb4d635a1
|
|
| MD5 |
b18a3984a09514f8b4a5938ad9776951
|
|
| BLAKE2b-256 |
3d20d0992f7c4af1b0eff6b77f25e13a1875e14cc4c51b66bc76f990c4d9d795
|