python

超轻量级php框架startmvc

python 用 xlwings 库 生成图表的操作方法

更新时间:2020-08-15 05:42:01 作者:startmvc
xlwings是一个获得BSD许可的Python库,可以很容易地从Excel调用Python,反之亦然。它适用于Window

xlwings是一个获得BSD许可的Python库,可以很容易地从Excel调用Python,反之亦然。 它适用于Windows和Mac上的Microsoft Excel。

在官方文档里找不到具体怎么生成图表,和一些参数设置。

这里自己整理了一下。


import xlwings as xw
app = xw.App()
wb = app.books.active
sht = wb.sheets.active

chart = sht.charts.add(100, 10) # 100, 10 为图表放置的位置坐标。以像素为单位。
chart.set_source_data(sht.range('A1').expand()) # 参数为表格中的数据区域。
# chart.chart_type = i # 用来设置图表类型,具体参数件下面详细说明。
chart.api[1].ChartTitle.Text = i # 用来设置图表的标题。

下面是所有图表类型:


import xlwings as xw
app = xw.App()
wb = app.books.active
sht = wb.sheets.active
# 生成图表的数据
sht.range('A1').value = [['时间', '数量'], ['1日', 2], ['2日', 1], ['3日', 3]
 , ['4日', 4], ['5日', 5], ['6日', 6]]
"""图表类型参数,被注释的那几个,无法生成对应的图表"""
dic = {
 '3d_area': -4098,
 '3d_area_stacked': 78,
 '3d_area_stacked_100': 79,
 '3d_bar_clustered': 60,
 '3d_bar_stacked': 61,
 '3d_bar_stacked_100': 62,
 '3d_column': -4100,
 '3d_column_clustered': 54,
 '3d_column_stacked': 55,
 '3d_column_stacked_100': 56,
 '3d_line': -4101,
 '3d_pie': -4102,
 '3d_pie_exploded': 70,
 'area': 1,
 'area_stacked': 76,
 'area_stacked_100': 77,
 'bar_clustered': 57,
 'bar_of_pie': 71,
 'bar_stacked': 58,
 'bar_stacked_100': 59,
 'bubble': 15,
 'bubble_3d_effect': 87,
 'column_clustered': 51,
 'column_stacked': 52,
 'column_stacked_100': 53,
 'cone_bar_clustered': 102,
 'cone_bar_stacked': 103,
 'cone_bar_stacked_100': 104,
 'cone_col': 105,
 'cone_col_clustered': 99,
 'cone_col_stacked': 100,
 'cone_col_stacked_100': 101,
 'cylinder_bar_clustered': 95,
 'cylinder_bar_stacked': 96,
 'cylinder_bar_stacked_100': 97,
 'cylinder_col': 98,
 'cylinder_col_clustered': 92,
 'cylinder_col_stacked': 93,
 'cylinder_col_stacked_100': 94,
 'doughnut': -4120,
 'doughnut_exploded': 80,
 'line': 4,
 'line_markers': 65,
 'line_markers_stacked': 66,
 'line_markers_stacked_100': 67,
 'line_stacked': 63,
 'line_stacked_100': 64,
 'pie': 5,
 'pie_exploded': 69,
 'pie_of_pie': 68,
 'pyramid_bar_clustered': 109,
 'pyramid_bar_stacked': 110,
 'pyramid_bar_stacked_100': 111,
 'pyramid_col': 112,
 'pyramid_col_clustered': 106,
 'pyramid_col_stacked': 107,
 'pyramid_col_stacked_100': 108,
 'radar': -4151,
 'radar_filled': 82,
 'radar_markers': 81,
 # 'stock_hlc': 88,
 # 'stock_ohlc': 89,
 # 'stock_vhlc': 90,
 # 'stock_vohlc': 91,
 # 'surface': 83,
 # 'surface_top_view': 85,
 # 'surface_top_view_wireframe': 86,
 # 'surface_wireframe': 84,
 'xy_scatter': -4169,
 'xy_scatter_lines': 74,
 'xy_scatter_lines_no_markers': 75,
 'xy_scatter_smooth': 72,
 'xy_scatter_smooth_no_markers': 73
}
w = 385
h = 241
n = 0
x = 100
y = 10
for i in dic.keys():
 xx = x + n % 3*w # 用来生成图表放置的x坐标。
 yy = y + n//3*h # 用来生成图表放置的y坐标。
 chart = sht.charts.add(xx, yy)
 chart.set_source_data(sht.range('A1').expand())
 chart.chart_type = i
 chart.api[1].ChartTitle.Text = i
 n += 1
wb.save('chart_图表')
wb.close()
app.quit()

总结

以上所述是小编给大家介绍的python 用 xlwings 库 生成图表的操作方法,希望对大家有所帮助!

python xlwings python生成图表