This release is a pre-release and may not be stable for production use.
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 файлами
Metadata
Release files for dgexcel 1.0.0a0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| dgexcel-1.0.0a0.tar.gz | 15.6 kB | Without provenance | Details for dgexcel-1.0.0a0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| dgexcel-1.0.0a0-py3-none-any.whl | Python 3 | none | any | Details for dgexcel-1.0.0a0-py3-none-any.whl |
Total release size: 31.3 kB
Release files / dgexcel-1.0.0a0.tar.gz
| Download URL | dgexcel-1.0.0a0.tar.gz |
|---|---|
| Size | 15.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1f08ea3113764b45fa74813156e79c84f20f8ce4566dc191a17f3a48cd4140b8
|
|
BLAKE2b-256 checksum How to use checksums |
1cc28161d9e733db4d963f19373a7753777600059fdf3cbf96c8f73a5499acf6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / dgexcel-1.0.0a0-py3-none-any.whl
| Download URL | dgexcel-1.0.0a0-py3-none-any.whl |
|---|---|
| Size | 15.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cc5569a5b7762efacb128bdd42587b8fbf74b7da27149ff0291a1dedb4d635a1
|
|
BLAKE2b-256 checksum How to use checksums |
3d20d0992f7c4af1b0eff6b77f25e13a1875e14cc4c51b66bc76f990c4d9d795
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Security for dgexcel 1.0.0a0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.