要在openpyxl的图表中换行展示轴标签,可以使用TextParagraphRichText来实现。以下是一个示例代码:

from openpyxl import Workbook
from openpyxl.drawing.text import RichText, ParagraphProperties, CharacterProperties
from openpyxl.chart import BarChart

# 创建一个新的工作簿和工作表
wb = Workbook()
ws = wb.active

# 添加一些数据
data = [
    ["Category", "Value"],
    ["This is a very long label that needs to be wrapped", 10],
    ["Another long label that needs to be wrapped", 20],
    ["Short label", 30],
]
for row in data:
    ws.append(row)

# 创建一个柱状图
chart = BarChart()
chart.title = "Chart with wrapped axis labels"

# 设置x轴标签为换行展示
x_axis = chart.x_axis
x_axis.title = "Category"

for i, row in enumerate(data[1:], 2):
    cell = ws.cell(row=i, column=1)
    text = cell.value
    paragraphs = []

    # 每个段落都是一行文本
    for line in text.split("\n"):
        # 创建一个段落
        paragraph = RichText()
        p = paragraph.add_paragraph()
        p.text = line

        # 设置段落的字体属性
        p.font = CharacterProperties(sz=10, b=True)

        # 设置段落的段落属性
        pp = ParagraphProperties(wrap=True)
        p.pPr = pp

        paragraphs.append(paragraph)

    # 将段落列表设置为单元格的值
    cell.value = paragraphs

    # 将单元格添加到x轴标签
    x_axis.append(cell)

# 将图表添加到工作表
ws.add_chart(chart, "D1")

# 保存工作簿
wb.save("chart_with_wrapped_labels.xlsx")

在上面的示例中,我们首先创建一个新的工作簿和工作表,并将一些数据添加到工作表中。然后,我们创建一个柱状图,并将x轴的标题设置为"Category"。接下来,我们迭代数据行,并对每个x轴标签进行换行处理。

在换行处理过程中,我们创建了一个段落列表,其中每个段落都是标签文本的一行。我们设置了每个段落的字体属性和段落属性,以便在图表中换行展示标签。最后,我们将段落列表设置为单元格的值,并将这些单元格添加到x轴标签中。

最后,我们将图表添加到工作表,并将工作簿保存为一个文件。在打开生成的文件时,你将看到x轴标签已经换行展示了。

openpyxl的chart轴标签太长了如何换行展示

原文地址: http://www.cveoy.top/t/topic/jfuX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录