Python Xlsxwriter charting
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],但我猜它在寻找具有该名称的现有工作表,而不是创建一个新工作表。非常感谢任何帮助。
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文件中追加数据。