python如何根据数据生成EXCEL一样的图表

比如,数据如下

df = pd.DataFrame([[1, 2, 3], [10, 20, 30]], columns=['a', 'b', 'c'])

我要生成一个图片,类似下面这样

并保存到当地文件夹

只用pandas.plot函数和PIL能实现吗

这样为什么不直接生成excel文件呢,生成图片很难几行代码画出这么工整的表格样子吧,特别是还含有中文这些

 

这个是生成excel的

from matplotlib import pyplot as plt
 
plt.rcParams['font.sans-serif']=['SimHei'] #显示中文标签
time_now = time.strftime('%Y%m%d-%H:%M:%S', time.localtime())
data_list = [[time_now, '002121', '感康', 5, 4, -1, 'daxia'], [time_now, '002111', '感冒灵颗粒', 3, 4, 1, 'luoengyang']]
headers = ['时间', '商品号', '商品名', '库存数', '盘点数', '差异数', '盘点人']
df = pd.DataFrame(data_list, columns=headers)
vals = df.values
rows = df.shape[0]
cols = df.shape[1]
print(rows, cols)
fig = plt.figure(figsize=(2+cols/2.5, rows), dpi=20)
ax = fig.add_subplot(111, frameon=True, xticks=[], yticks=[])
the_table=plt.table(cellText=vals, rowLabels=df.index, colLabels=df.columns, colWidths=[0.1]+[0.02]*(vals.shape[1]-1), loc='center',cellLoc='center')
the_table.auto_set_font_size(False)
the_table.set_fontsize(12)
the_table.scale(4, 4.5)
plt.text(0.01, -0.1, '备注:请认真核对商品信息!')
plt.show()
plt.savefig('testblueline.jpg')