openpyxl更改标题和y轴的字体大小。标题

问题描述 投票:5回答: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

还是我的方向错了?

python openpyxl
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)])

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

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
© www.soinside.com 2019 - 2024. All rights reserved.