Как создать файлы Excel xlsx из сценария?

7

Я ищу пакеты, доступные в репозиториях Ubuntu main / universe, которые могут создавать файлы Excel 2007+ xlsx из скрипт (python или perl)

Мои требования:

  • 100% совместимые файлы Excel XLSX.
  • Полная и всесторонняя документация и широкий спектр примеров / учебников.
  • Стабильный API
  • Введите текст, цифры, формулы и гиперссылки
  • Несколько рабочих листов
  • Полное форматирование
  • Объединенные ячейки
  • Диаграммы
  • автофильтрами
  • Рабочий лист PNG / JPEG
  • Комментарии к ячейкам
  • Группа и контуры
задан Sylvain Pineau 29.04.2014 в 13:52
источник

1 ответ

12

Я очень рекомендую модули Джона Макнамары. Он загрузил новый модуль Python под названием XlsxWriter для создания файлов XLSX на PyPi , который я упаковал для Debian и Ubuntu.

Это порт модуля Perl, который он написал, называемый Excel :: Writer :: XLSX , который является расширением другого модуля Perl под названием Spreadsheet :: WriteExcel .

python3-xlsxwriter ( python-xlsxwriter для python 2.x)

XlsxWriter - это модуль Python для записи файлов в формате Excel 2007+ XLSX.

Он может использоваться для записи текста, чисел и формул на несколько листов и поддерживает такие функции, как форматирование, изображения, диаграммы, настройка страницы, автофильтры, условное форматирование и многие другие.

XlsxWriter имеет некоторые преимущества перед альтернативными модулями Python для записи файлов Excel:

  • Он поддерживает больше функций Excel, чем любой из альтернативных модулей.
  • Он обладает высокой степенью точности с файлами, создаваемыми Excel. В большинстве случаев созданные файлы на 100% эквивалентны файлам, созданным Excel.
  • Он содержит обширную документацию, файлы примеров и тесты.
  • Быстро и может быть настроено на использование очень маленькой памяти даже для очень больших выходных файлов.
  • Интеграция с Pandas (Библиотека анализа данных Python).

Простой пример некоторых функций XlsxWriter Модуль Python:

#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-writer-xlsx-perl

Excel :: Writer :: XLSX можно использовать для создания файла Excel в формате 2007+ XLSX.

Несколько листов могут быть добавлены в рабочую книгу, и форматирование может быть применено к ячейкам. Текст, числа и формулы могут быть записаны в ячейки.

Excel :: Writer :: XLSX использует тот же интерфейс, что и модуль Spreadsheet :: WriteExcel , который создает файл Excel в двоичном формате XLS.

Excel :: Writer :: XLSX поддерживает все функции таблицы: WriteExcel и в в некоторых случаях больше функциональности. Для получения дополнительной информации см. Совместимость со таблицами :: 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.

    
ответ дан Sylvain Pineau 29.04.2014 в 13:52
источник

Ознакомьтесь с другими вопросами по меткам