Размер шрифта openpyxl chage для заголовка & y_axis.title

python openpyxl

2111 просмотра

3 ответа

В настоящее время я борюсь с изменением шрифта заголовка оси Y и самого заголовка диаграммы.

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

new_chart.y_axis.title = chart_dict['y_title']
ft = Font(name='Calibri',
          size=11,
          bold = False,
          italic = False,
          vertAlign = None,
          underline = 'none',
          strike = False,
          color = 'FF000000')

new_chart.y_axis.title.font = ft

Есть ли легкая настройка для этого - как:

chart.y_axis.title.some_size_attrib = 12

или я не в том направлении?

Автор: Lev Источник Размещён: 08.11.2019 11:21

Ответы (3)


4 плюса

Решение

Надеюсь, ты не опоздаешь. После долгих исследований я смог найти способ изменить шрифт и его размер из сегмента диаграммы с помощью Openpyxl.

Размер шрифта определяется как sz = 1500, и это означает обычный размер шрифта 15. При использовании этой логики 1200 равно 12. Минимум 100, а максимум 400000.

from openpyxl.chart.text import RichText
from openpyxl.drawing.text import Paragraph, ParagraphProperties, CharacterProperties, Font    

font_test = Font(typeface='Calibri')
cp = CharacterProperties(latin=font_test, sz=1500)
chart.x_axis.txPr = RichText(p=[Paragraph(pPr=ParagraphProperties(defRPr=cp), endParaRPr=cp)])
Автор: Leandro Reis Размещён: 17.07.2017 06:42

2 плюса

В моем случае это не работает должным образом. Тот, который я использовал в конце был:

from openpyxl.drawing.text import CharacterProperties

cp = CharacterProperties(sz=1100)  # Where size goes from 100 till 40000
mygraph.x_axis.title.tx.rich.p[0].r.rPr = cp
Автор: Marco smdm Размещён: 02.02.2018 12:45

1 плюс

В моем случае ни один из этих ответов не сработал, поэтому я сделал это:

from openpyxl.drawing.text import CharacterProperties, Paragraph, ParagraphProperties, RegularTextRun

cp = CharacterProperties(sz=1200)
xtStr = u"X-axis Title"
ytStr = u"Y-axis Title"
myChart.x_axis.title = ""
myChart.y_axis.title = ""
xPara = [Paragraph(pPr=ParagraphProperties(defRPr=cp), r=RegularTextRun(t=s)) for s in xtStr.split("\n")]
yPara = [Paragraph(pPr=ParagraphProperties(defRPr=cp), r=RegularTextRun(t=s)) for s in ytStr.split("\n")]
myChart.x_axis.title.tx.rich.paragraphs = xPara
myChart.y_axis.title.tx.rich.paragraphs = yPara
Автор: Alexa Kirk Размещён: 06.03.2018 07:50
Вопросы из категории :
32x32