Почему встроенные стили MS-Word не работают при использовании python-docx? - PullRequest
0 голосов
/ 13 октября 2018

Я хочу применить стили к моему абзацу (список, номер списка, список № 2 и т. Д.), Используя пакет python-docx .Я создаю свой собственный шаблон MS-Word, в котором есть несколько конкретных стилей, которые я делаю.Также мне иногда нужно применять стиль встраивания MS-Word.Вот мой код:

    elif to_U_sc:
        to_write = to_U_sc.group(2)
        paragraph = self.template.add_paragraph(to_write, style='List')
    elif to_O_sc2:
        to_write = to_O_sc2.group(2)
        paragraph = self.template.add_paragraph(to_write, style='ListNumber')

Здесь self.template - это Document объект.Проблема в том, что я использую ListNumber или List Number или wdStyleListNumber в качестве имени стиля, все они вызывают ошибку, что нет такого стиля .Как:

File "/usr/lib/python2.7/site-packages/python_docx-0.8.5-py2.7.egg/docx/styles/styles.py", line 57, in __getitem__
    raise KeyError("no style with name '%s'" % key)
KeyError: u"no style with name 'ListNumber'"  

Я пытаюсь распечатать все стили в моем шаблоне, используя код:

    def all_styles(self):
        styles = self._document.styles
        for style in styles:
            print('Name: {}\tType:{}'.format(style.name, style.type))

Вот результат:

Имя: Список абзацТип: PARAGRAPH (1)
Имя: 浅色 底纹 - 强调 文字 颜色 22 Тип: TABLE (3)
Имя: Light Shading Accent 2 Тип: TABLE (3)
Название: 项目 Тип: PARAGRAPH(1)
Имя: 大 结构 Тип: ПАРАГРАФ (1)
Имя: 标题 1 字符 Тип: ХАРАКТЕР (2)
Имя: 网格 表 2 - 着色 21 Тип: СТОЛ (3)
Имя: 网格 表 1 浅色 - 着色 21 Тип: TABLE (3)
Имя: 网格 表 4 - 着色 51 Тип: TABLE (3)
Имя: 网格 表 4 - 强调 文字 颜色 11Тип: TABLE (3)
Имя: 列表 段落 字符 Тип: CHARACTER (2)
Имя: Нижний колонтитул Тип: PARAGRAPH (1)
Имя: 页脚 字符 Тип: CHARACTER (2)
Имя: Обычный (Интернет) Тип: PARAGRAPH (1)
Имя: 浅色 网 格 - 强调 文字 颜色 11 Тип: TABLE (3)
Имя: 网格 表 4 - 着色 41 Тип: TABLE (3)
Имя: 网格 表 4 - 强调 文字 颜色 41 Тип: СТОЛ (3)
Имя: 表 表 4 - 着色 61 Тип: TABLE (3)
Имя: Нет Тип интервала: PARAGRAPH (1)
Имя: 网格 表 5 深色 - 着色 41 Тип: TABLE (3)
Имя: 网格 表 7 彩色 - 着色 41 Тип: ТАБЛИЦА (3)
Имя: Воздушный шар Тип текста: ПАРАГРАФ (1)
Имя: 批注 框 文本 字符 Тип: ХАРАКТЕР (2)
Имя: 标题 2 字符 Тип: CHARACTER (2)
Имя: 网格 表 4 - 着色 5210 Тип: TABLE (3)
Имя: 网格 表 4 - 着色 528 Тип: TABLE (3)
Имя: заголовок Тип: PARAGRAPH (1)
Имя: 页眉 字符 Тип: CHARACTER (2)
Имя: TOC Тип заголовка: PARAGRAPH (1)
Имя: toc 1 Тип: PARAGRAPH (1)
Имя: toc 2 Тип: PARAGRAPH (1)
Имя: toc 3 Тип: PARAGRAPH (1)
Имя: Тип гиперссылки: CHARACTER (2)
Имя: DetailTitle Тип: PARAGRAPH (1)
Имя: DetailTitle 字符 Тип: CHARACTER (2)
Имя: CDGene Тип: TABLE (3)

Почему так мало стилей?
Я хочу знать, Как применить такую ​​сборкуВ стиле правильно.
Спасибо!

1 Ответ

0 голосов
/ 13 октября 2018

См. Описание из документа .

В итоге, если вы создаете новый документ с помощью python-docx, он имеет ограниченные стили.Используйте Microsoft Word, чтобы открыть документ, и используйте только доступные стили, которые соответствуют вашим потребностям.

Либо создайте пустой документ с помощью Microsoft Word.Настройте и выберите стили, которые вам нужны.Используйте python-docx, чтобы использовать выбранные вами стили.

...