Как создать Excel XLSX файлы из скрипта?
Я ищу пакеты, доступные в репозиториях основной / вселенной Ubuntu, способных создавать файлы Excel 2007+ xlsx из сценария (python или perl)
Мои требования:
- 100% совместимые файлы Excel XLSX.
- Обширная и исчерпывающая документация и широкий выбор примеров / учебников
- Стабильный API
- Напишите текст, числа, формулы и гиперссылки
- Несколько листов
- Полное форматирование
- Объединенные ячейки
- Графики
- автофильтрами
- Рабочий лист изображений PNG/JPEG
- Комментарии к ячейкам
- Группа и Контуры
1 ответ
Я очень рекомендую модули Джона Макнамара. Он загрузил новый модуль Python под названием XlsxWriter для создания файлов XLSX в PyPi, который я упаковал для Debian и Ubuntu.
Это порт модуля Perl, который он написал с именем Excel::Writer::XLSX, который является расширением другого модуля Perl с именем Spreadsheet:: WriteExcel.
python3-xlsxwriter ( python-xlsxwriter для python 2.x)
XlsxWriter - это модуль Python для записи файлов в формате XLSX в формате Excel 2007+.
Его можно использовать для записи текста, чисел и формул на несколько рабочих листов, и он поддерживает такие функции, как форматирование, изображения, диаграммы, настройки страниц, автофильтры, условное форматирование и многие другие.
XlsxWriter имеет некоторые преимущества перед альтернативными модулями Python для написания файлов Excel:
- Он поддерживает больше функций Excel, чем любой из альтернативных модулей.
- Он имеет высокую степень точности с файлами, созданными в Excel. В большинстве случаев создаваемые файлы на 100% эквивалентны файлам, созданным в Excel.
- Имеет обширную документацию, примеры файлов и тесты.
- Это быстро и может быть настроено на использование очень мало памяти, даже для очень больших выходных файлов.
- Интеграция с Pandas (библиотека анализа данных Python).
Простой пример некоторых функций модуля Python XlsxWriter:
#Copyright 2013-2014, John McNamara, jmcnamara@cpan.org
import xlsxwriter
# Create an new Excel file and add a worksheet.
workbook = xlsxwriter.Workbook('demo.xlsx')
worksheet = workbook.add_worksheet()
# Widen the first column to make the text clearer.
worksheet.set_column('A:A', 20)
# Add a bold format to use to highlight cells.
bold = workbook.add_format({'bold': True})
# Write some simple text.
worksheet.write('A1', 'Hello')
# Text with formatting.
worksheet.write('A2', 'World', bold)
# Write some numbers, with row/column notation.
worksheet.write(2, 0, 123)
worksheet.write(3, 0, 123.456)
# Insert an image.
worksheet.insert_image('B5', 'logo.png')
workbook.close()

Посетите эту страницу для получения полного списка примеров XlsxWriter.
libexcel-писатель-XLSX жемчужно
Модуль Excel::Writer::XLSX можно использовать для создания файла Excel в формате XLSX 2007+.
В рабочую книгу можно добавить несколько листов, а к ячейкам можно применить форматирование. Текст, числа и формулы могут быть записаны в ячейки.
Excel::Writer::XLSX использует тот же интерфейс, что и модуль Spreadsheet:: WriteExcel, который создает файл Excel в двоичном формате XLS.
Excel::Writer::XLSX поддерживает все функции Spreadsheet:: WriteExcel и в некоторых случаях имеет больше функций. Для получения дополнительной информации см. Совместимость с Spreadsheet:: WriteExcel.
Основное преимущество формата XLSX перед форматом XLS заключается в том, что он допускает большее количество строк и столбцов на рабочем листе.
Формат файла XLSX также производит файлы намного меньшего размера, чем формат файла XLS.
Чтобы записать строку, отформатированную строку, число и формулу на первый лист в книге Excel с именем perl.xlsx:
# reverse ('(c)'), March 2001, John McNamara, jmcnamara@cpan.org
use Excel::Writer::XLSX;
# Create a new Excel workbook
my $workbook = Excel::Writer::XLSX->new( 'perl.xlsx' );
# Add a worksheet
$worksheet = $workbook->add_worksheet();
# Add and define a format
$format = $workbook->add_format();
$format->set_bold();
$format->set_color( 'red' );
$format->set_align( 'center' );
# Write a formatted and unformatted string, row and column notation.
$col = $row = 0;
$worksheet->write( $row, $col, 'Hi Excel!', $format );
$worksheet->write( 1, $col, 'Hi Excel!' );
# Write a number and a formula using A1 notation
$worksheet->write( 'A3', 1.2345 );
$worksheet->write( 'A4', '=SIN(PI()/4)' );
Посетите эту страницу для получения полного списка примеров Excel::Writer::XLSX.