【问题标题】:Openpyxl - Creating a chart on a different sheetOpenpyxl - 在不同的工作表上创建图表
【发布时间】:2019-12-18 01:39:00
【问题描述】:

我一直在使用 Openpyxl 将 pandas 数据帧传输到 Excel 文件。我必须使用工作给我的模板文件。

因为我无法在“可打印”工作表中进行太多修改,所以我在工作簿的末尾创建了一个工作表,我在其中添加了所有数据框。现在我必须绘制它们并将各种图表放在不同的表格中。

我的问题是,我可以使用 openpyxl 方法在不活动的工作表上创建图表吗?图表的所有数据/标签都在一张纸上,我想为不同的纸制作图表。我已经搜索了所有文档和该站点,但找不到答案。

另一个问题是,我可以在同一个文件中将图表从一张表复制到另一张表吗?如果是这样,我该怎么做?

谢谢!

【问题讨论】:

    标签: python excel pandas openpyxl excel-charts


    【解决方案1】:

    您可以在非活动工作表上创建图表。 除了使用active,您还可以使用对每张工作表的固定引用,例如

    wb = Workbook()
    ws_data = wb['Data']
    

    我总是使用这样的工作表 (Explicit is better than implicit)。

    例子:

    from openpyxl import Workbook
    from openpyxl.chart import BarChart, Reference, Series
    
    wb = Workbook()
    wb.create_sheet('Data')
    
    ws_data = wb['Data']
    for i in range(10):
        ws_data.append([i])
    
    sheetlist = ['Test1', 'Test2', 'Test3']
    
    for w in sheetlist:
        wb.create_sheet(w)
    
    for s in sheetlist:
    
        values = Reference(ws_data, min_col=1, min_row=1, max_col=1, max_row=10)
        chart = BarChart()
        chart.add_data(values)
    
        ws = wb[s]
        ws.add_chart(chart, "B5")
    
    wb.save("SampleChart.xlsx")
    

    【讨论】:

    • 非常感谢您的回答!我现在不在工作,但明天会试试。我会试一试。我想根据不同的 dfs 添加各种不同的图表(就像我必须做的那样)可能有点乏味,但如果它有效,那么一切都很好! :)
    • 如果有一些 df 需要哪个图表的模式,您可能可以将其中的大部分自动化。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-22
    • 1970-01-01
    相关资源
    最近更新 更多