【问题标题】:Python Xlsxwriter chartingPython Xlsxwriter 图表
【发布时间】:2020-02-19 13:36:26
【问题描述】:

我正在尝试构建一个简单的 python 脚本,该脚本从 .csv 文件中读取数据,将数据格式化为易于阅读的布局,然后将其写入新的 xlsx 文件或附加到现有的 xlsx 文件中,具体取决于用户输入。一切正常,我使用以下方式写入新文件;

    with pd.ExcelWriter(file_path) as writer:
    df.to_excel(writer, sheet_name='Master')

现在我想添加第二张表,其中包含数据中的 excel 图表,并将上述代码扩展到;

with pd.ExcelWriter(file_path) as writer:
    df.to_excel(writer, sheet_name='Master')
    book = writer.book
    sheet = writer.sheets['Master']
    chart_a = book.add_chart({'type': 'line'})
    chart_a.add_series({
        'categories': ['Master', 1, 0, trend_data_row, 0],
        'values': ['Master', 1, 1, trend_data_row, 1],
    })
    chart_a.set_x_axis({'name': 'time', 'position_axis': 'on_tick'})
    chart_a.set_y_axis({'name': 'value'})
    chart_a.set_legend({'position': 'Bottom'})
    sheet.insert_chart('A11', chart_a)
    writer.save()

这会按预期将图表添加到“主”工作表中,我不明白如何创建第二个工作表并将图表插入其中。我尝试将sheet = writer.sheets 更改为新名称[Graphs],但我猜它正在寻找具有该名称的现有工作表,而不是创建一个。非常感谢任何帮助。

【问题讨论】:

标签: python excel pandas xlsxwriter


【解决方案1】:

我不明白如何创建第二张表并将图表插入其中。

你可以这样做:

import pandas as pd


# Create a Pandas dataframe from some data.
df = pd.DataFrame({'Data': [10, 20, 30, 20, 15, 30, 45]})

# Create a Pandas Excel writer using XlsxWriter as the engine.
writer = pd.ExcelWriter('pandas_chart.xlsx', engine='xlsxwriter')

# Convert the dataframe to an XlsxWriter Excel object.
df.to_excel(writer, sheet_name='Master')

# Get the xlsxwriter workbook object.
workbook  = writer.book

# Add a new worksheet.
worksheet = workbook.add_worksheet('Graphs')

# Create a chart object.
chart = workbook.add_chart({'type': 'column'})

# Configure the series of the chart from the dataframe data.
chart.add_series({'values':  ['Master', 1, 1, 7, 1]})

# Insert the chart into the worksheet.
worksheet.insert_chart('D2', chart)

# Close the Pandas Excel writer and output the Excel file.
writer.save()

输出:

然后将其写入新的 xlsx 文件或附加到现有的 xlsx 文件

XlsxWriter 无法写入现有文件。

【讨论】:

    猜你喜欢
    • 2017-03-31
    • 2015-06-14
    • 1970-01-01
    • 2019-01-02
    • 1970-01-01
    • 2015-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多