xlwings
模块与pandas
模块的交互
xlwings模块可以与pandas模块进行交互。例如,用pandas模块创建数据表格,再用xwings模块将表格写入工作簿,演示代码如下:
import xlwings as xw
import pandas as pd
# 启动excel 程序窗口,参数visible用于设置窗口是否可见
app = xw.App(visible=False)
#新建工作簿
workbook = app.books.add()
# 新建一个工作表
worksheet = workbook.sheets.add('新工作表')
df = pd.DataFrame([[1,2],[3,4]],columns=['a','b'])
# 将表格以 A1 为左上角 插入
worksheet.range('A1').value = df
#保存表格
workbook.save(r'table.xlsx')
app.quit()
运行结果
xlwings
模块与Matplotlib
模块的交互
xwings模块还可以与Maplotib模块进行交互。例如,用Matploldb模块绘制图表,再用xlwings模块将图表写入工作簿,演示代码如下。
import xlwings as xw
import matplotlib.pyplot as plt
figure = plt.figure()
x = [1,2,3,4,5]
y = [2,4,6,8,10]
plt.plot(x,y)
app = xw.App(visible=False)
workbook = app.books.add()
worksheet = workbook.sheets.add('新工作表')
worksheet.pictures.add(figure,name ='图片1',update=True,left = 100)
workbook.save('table1.xlsx')
app.quit()
worksheet,pictures. add()函数可以将Matpiolib模块绘制的图表写入工作簿。上述代码中为该函数设置的参数含义简单解释如下:
- figure为固定写法,代表之前用MatpIotlib模块绘制的图表。
- name用于指定图表的名称,这个名称并不显示在图表上,它是在绘制多个图表时使用的,如果要在同一个工作表里绘制第二个图表,则需要把name设置成另一个名称。
- update设置为True,则在后续通过pictures add()函数调用具有相同名称(圈片1)的图表时,可以只更新图表数据而不更改其位置或大小。
- left用于设置图表与左侧边界的距离,这里设置left为100,表示让图表距离左侧边界100像素,同理可以设置参数top为400,表示让图表距离顶部边界400像素。
运行结果