Python Xlsxwriter charting

12 浏览
0 Comments

Python Xlsxwriter charting

我正在尝试构建一个简单的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()

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

0
0 Comments

Python的XlsxWriter库是一个用于创建Excel文件的强大工具。在使用XlsxWriter创建Excel文件时,有时会遇到在第二个工作表中插入图表的问题。下面是一个示例代码,展示了如何在第二个工作表中插入图表:

import pandas as pd
# 从一些数据创建一个Pandas dataframe
df = pd.DataFrame({'Data': [10, 20, 30, 20, 15, 30, 45]})
# 使用XlsxWriter作为引擎创建一个Pandas Excel writer
writer = pd.ExcelWriter('pandas_chart.xlsx', engine='xlsxwriter')
# 将dataframe转换为XlsxWriter Excel对象
df.to_excel(writer, sheet_name='Master')
# 获取XlsxWriter工作簿对象
workbook  = writer.book
# 添加一个新的工作表
worksheet = workbook.add_worksheet('Graphs')
# 创建一个图表对象
chart = workbook.add_chart({'type': 'column'})
# 从dataframe数据中配置图表的系列
chart.add_series({'values':  ['Master', 1, 1, 7, 1]})
# 将图表插入工作表中
worksheet.insert_chart('D2', chart)
# 关闭Pandas Excel writer并输出Excel文件
writer.save()

上述代码会在Excel文件中的第一个工作表中创建一个名为"Master"的工作表,并将数据写入其中。然后,它会在Excel文件中创建一个名为"Graphs"的第二个工作表,并在其中插入一个柱状图。最后,通过调用`writer.save()`保存并关闭Excel文件。

然而,XlsxWriter无法直接向现有的Excel文件中写入数据。如果想要将数据写入现有的Excel文件,可以使用openpyxl库。下面是一个示例代码,展示了如何使用openpyxl将数据追加到现有的Excel文件中:

from openpyxl import load_workbook
# 打开现有的Excel文件
workbook = load_workbook('existing_file.xlsx')
# 选择要追加数据的工作表
worksheet = workbook['Sheet1']
# 追加数据到工作表中
worksheet.append(['New Data'])
# 保存Excel文件
workbook.save('existing_file.xlsx')

上述代码会打开名为"existing_file.xlsx"的现有Excel文件,并选择名为"Sheet1"的工作表。然后,它会在工作表的末尾追加一个新的数据行"New Data",最后保存Excel文件。

这样,我们就可以使用XlsxWriter创建Excel文件,并在第二个工作表中插入图表;同时,还可以使用openpyxl向现有的Excel文件中追加数据。

0