Программное создание XLS с раскрывающейся ячейкой в ​​Python

В настоящее время я создаю файлы XLS программно, используя Python и библиотеки XLWT/XLRD.

Я смог заполнить ячейки значениями и вставить простые формулы. Моя проблема заключается в том, что я хочу создать раскрывающийся список для своих пользователей (http://office.microsoft.com/en-us/excel-help/create-or-remove-a-drop-down-list-HP005202215.aspx)

Да, я могу легко сделать это в EXCEL, но мне нужно, чтобы этот процесс был автоматизирован - я использую Python и библиотеки XLWT/XLRD - я бы предпочел придерживаться их, но при необходимости я переключусь на что-то другое (я' m на сервере Ubuntu Linux).


person pirhac    schedule 13.08.2012    source источник


Ответы (4)


Короткий ответ: нельзя - XLWT/XLRD не поддерживается.

person Andreas Jung    schedule 13.08.2012
comment
Знаете ли вы библиотеку, которая бы это поддерживала? Я не могу использовать .NET, но любой Python, Perl, PHP или Ruby подходит для игры. - person pirhac; 13.08.2012
comment
Файл .xlsx — это просто набор .xml файлов, заархивированных вместе, его не так уж сложно сгенерировать. Переименуйте файл .xlsx в .zip и убедитесь сами. - person Paulo Scardine; 13.08.2012
comment
Хорошая идея, Пауло, но мне нужно снова прочитать электронную таблицу, а XLRD НЕ читает XLSX :( - person pirhac; 13.08.2012
comment
openpyxl может читать и записывать xlsx: packages.python.org/openpyxl . Я не знаю, поддерживает ли он создание раскрывающегося списка. - person Wichert Akkerman; 14.08.2012
comment
Ничто в Python, похоже, не делает то, что мне нужно - я буду использовать Perl, похоже, у него есть более зрелый плагин XLS. - person pirhac; 16.08.2012
comment
@andreas как ты пришел к такому выводу? - person Wolfpack'08; 08.01.2016

openpyxl также поддерживает выпадающие ячейки в файлах XLSX посредством проверки данных: http://openpyxl.readthedocs.org/en/latest/validation.html

person k427h1c    schedule 23.02.2015

Для справки, xlsxwriter может обрабатывать раскрывающиеся списки в XLSX:

https://xlsxwriter.readthedocs.org/en/latest/example_data_validate.html

person GermanK    schedule 17.09.2013

Ваш лучший выбор проходит через COM.

http://oreilly.com/catalog/pythonwin32/chapter/ch12.html

Оттуда у вас есть все параметры, доступные вам в собственном Visual Basic Office, включая (по крайней мере) возможность отправлять щелчки и нажатия клавиш различным объектам в окне.

person Ishpeck    schedule 13.08.2012
comment
COM нуждается в Windows, я использую Linux - person pirhac; 16.08.2012