2016-12-20 12 views
1

Я пытаюсь добавить некоторые наборы значков в существующий файл excel с помощью python. Файл excel написан с использованием xlsxwriter. Поскольку xlsxwriter не поддерживает наборы значков, я закрываю файл, снова открываю его с помощью openpyxl, добавляю наборы значков и сохраняю его снова. Проблема в том, что я потерял все условное форматирование, добавленное ранее. Открытие файла в openpyxl с помощью «keep_vba = True» приводит к нечитаемому файлу xlsx.Добавить набор значков в существующий файл excel с помощью python

Любые идеи, как достичь этого?

Заранее благодарен!

P.S .: Пропущенные детали. Простите за это. Я пишу xlsx-файлы в обоих случаях (xlsxwriter и openpyxl) и использую python 2.7 и последние версии openpyxl и xlsxwriter на Windows-машине с excel 2013. Наборы значков - это маленькие символы, такие как стрелки (вверх, вниз), которые можно использовать в условных форматирование.

+0

Итак, вы перевели Ваш ** ** XLS файл ** ** XLSX, верно? Что вы называете «наборы значков», можете ли вы привести нам пример? –

+0

Я работаю только с файлами xlsx. Нет xls. Наборы значков являются, например, светофоры, которые вы можете добавить в ячейку: [link] (https://support.office.com/en-US/article/Use-data-bars-color-scales-and-icon-sets-to-highlight- data-F118D0A6-5921-4E2E-905B-FE00F3378FB9) – littleHue

ответ

1

OpenPyXl имеет поддержку условного форматирования и наборов значков.

Смотрите официальную документацию: Conditional Formatting > IconSet

Вот пример:

>>> from openpyxl.formatting.rule import IconSet, FormatObject 
>>> first = FormatObject(type='percent', val=0) 
>>> second = FormatObject(type='percent', val=33) 
>>> third = FormatObject(type='percent', val=67) 
>>> iconset = IconSet(iconSet='3TrafficLights1', cfvo=[first, second, third], showValue=None, percent=None, reverse=None) 
>>> # assign the icon set to a rule 
>>> from openpyxl.formatting.rule import Rule 
>>> rule = Rule(type='iconSet', iconSet=iconset) 
+0

Извините, я думаю, что я плохо описал проблему: условное форматирование, добавленное с помощью openpyxl, отлично работает, и я вижу наборы значков. Но все остальные условные форматы, которые были в исходном файле, теряются. – littleHue

+0

Это звучит как ошибка в OpenPyXl :-( –

+0

Я боялся этого. Спасибо за вашу помощь и время! – littleHue