使用xlsxwriter从指定的单元格创build图表

好吧,所以我对整体的excel比较陌生,被要求编写一个脚本从数据库中取出一些数据,然后制作一个表格。 我做了什么,现在他们要求我添加graphics,以更简单的格式显示这些数据,因为你知道范围蠕变和所有。 无论如何,我正在尝试创build一个饼图,引用两个不是彼此相邻的单独的工作表中的特定单元格。 我可以弄清楚这两个单元之间的一切范围,但是我需要它专门只使用我提供的单元。

executive = book.add_worksheet("Executive Summary") yesterday_chart = book.add_chart({'type': 'pie'}) yesterday_chart.add_series({'name': 'Yesterdays Installs', 'values': '=(\'Total Counts\'!$B$2,\'Total Counts\'!$J$2)', 'points': [ {'fill': {'color': 'green'}}, {'fill': {'color': 'red'}}, ], }) 

这是我现在有创造两点,但没有填充数据的地方。 我需要它从名为TotalCounts的表中绘制出单元格B2和J2。 在此先感谢您的帮助,以保持我的理智。

编辑:添加更多的代码和显示输出。

 #!/usr/bin/python3 import xlsxwriter book = xlsxwriter.Workbook("Testing.xlsx") counts = book.add_worksheet("Total Counts") r = 0 c = 0 counts.write(0, 0, "Total Installed to date") counts.write(0, 1, "Installed Yesterday") counts.write(0, 2, " Missed Yesterday") counts.write(0, 3, "Scheduled Yesterday") executive = book.add_worksheet("Executive Summary") yesterday_chart = book.add_chart({'type': 'pie'}) r += 1 counts.write(r, c, "100") counts.set_column(c, c, len("Total Installed to date")) c += 1 counts.write(r, c, "25") counts.set_column(c, c, len("Installed Yesterday")) c += 1 counts.write(r, c, "5") counts.set_column(c, c, len("Missed Yesterday")) c += 1 counts.write(r, c, "30") counts.set_column(c, c, len("Scheduled Yesterday")) c = 0 yesterday_chart.add_series({'name': 'Yesterdays Installs', 'values': "=('Total Counts'!$D$2,'Total Counts'!$B$2)", 'points': [ {'fill': {'color': 'green'}}, {'fill': {'color': 'red'}}, ], }) executive.insert_chart(0, 0, yesterday_chart) book.close() 

总表

图形输出

该语法应该工作。 也许发布一个更完整的工作示例,以便我们看到问题所在。

同时,这里是一个工作的例子:

 import xlsxwriter workbook = xlsxwriter.Workbook('chart.xlsx') worksheet = workbook.add_worksheet('Total Counts') # Create a new Chart object. chart = workbook.add_chart({'type': 'pie'}) # Write some data to add to plot on the chart. worksheet.write_column('A1', [2, 4, 6, 8, 10]) # Add a data series bases on some points. chart.add_series({'values': "=('Total Counts'!$A$1,'Total Counts'!$A$3)"}) # Insert the chart into the worksheet. worksheet.insert_chart('C3', chart) workbook.close() 

输出: 在这里输入图像说明