如何用Python win32com处理Excel数据?

为什么要用Python处理数据?

①快。之前发送数据日报都是从系统中导出数据,然后填充到基础表格中,展示表格里面的公式自动计算出数据。用过Excel的小伙伴都了解,很多公式(或者数组公式)或者大的基础数据,都会造成Excel的卡顿或者死机,,利用Python一般不会出现这种情况。

②顺畅。发数据的流程中"导出数据"的过程已经用Python解决(利用requests)。现在需要把Python导出的数据,写进自己设定的Excel表中。然后后期用itchat自动把数据发送到特定的微信群中。

为什么选择win32com

优点:语言基本上与VBA一致,如果碰到不懂的地方,可以用宏的方式去查看VBA代码

缺点:必须在windows操作系统上面使用,程序出问题报错基本上看不懂。

我为什么要用这个?碰巧遇到

如何安装win32com

win32com下载地址:https://sourceforge.net/projects/pywin32/files/

下载过来操作安装即可

如何用Python win32com处理Excel数据?_第1张图片
pywin安装界面

win32com简单使用方法

引用模块

import win32com.client as win32     

from PIL import ImageGrab    #用于获取复制的图片

读取表格

1、获得Excel

excel = win32.Dispatch('Excel.Application')   #获取Excel

2、获得工作薄

wb = excel.Workbooks.open('D:\\article_data\\test.xlsx') 

3、获得工作表

ws = wb.Worksheets('Sheet1')

4、结果输出

如何用Python win32com处理Excel数据?_第2张图片
结果展示

填充数据

c_column = [20,30,20,30,40,50,35,45]

d_column = [15,31,22,15,16,40,34,89]

ws.Range('C2').value = c_column[0]

结果输出

如何用Python win32com处理Excel数据?_第3张图片
结果展示

也可以可以用函数快速处理数据

如何用Python win32com处理Excel数据?_第4张图片
函数填充数据

结果输出

如何用Python win32com处理Excel数据?_第5张图片
结果展示

对完成率进行降序排序

ws.Range('A2:D9').Sort(Key1= ws.Range('B2'),Order1 = 2,Orientation=1)

结果展示

如何用Python win32com处理Excel数据?_第6张图片
结果展示

保存为图片

ws.Range('A1:D10').CopyPicture()

ws.Paste(ws.Range('G1'))


结果展示

如何用Python win32com处理Excel数据?_第7张图片
结果展示

把图片保存到本地

ws.Shapes('图片 1').copy()

img = ImageGrab.grabclipboard()

img.save('D:\\article_data\\图片1.png')

结果展示

如何用Python win32com处理Excel数据?_第8张图片
结果展示

关闭表格

wb.close()

所有代码展示

如何用Python win32com处理Excel数据?_第9张图片
操作代码

你可能感兴趣的:(如何用Python win32com处理Excel数据?)