使用Python的库xlwings操作EXCEL

使用Python的库xlwings操作EXCEL

 

使用Python的库(也称为模块)xlwings可以说是处理Excel数据的利器。Xlwings是开源免费的,能够非常方便的读写Excel文件中的数据,并且能够修改单元格的格式。

xlwings文档 https://docs.xlwings.org/en/stable/

xlwings中文文档 https://www.kancloud.cn/gnefnuy/xlwings-docs/1127450

 

要使用xlwings,需要安装xlwings。可以cmd中使用下面命令安装:

pip install xlwings

【详见 Python第三方模块(库、包)安装、卸载与查看及常见问题解决  https://blog.csdn.net/cnds123/article/details/104393385

 

测试安装是否成功,在IDLE shell中输入:

import xlwings as xw

参见下图:

若不报错,说明安装xlwings成功。

若报错提示No module named ‘pywintypes’

先关闭IDLE shell,在cmd中执行:pip install pypiwin32

再次启动IDLE shell输入import xlwings as xw测试

 

将xlwings库安装成功后,若想在python代码中使用它,首先导入语句导入xlwings库:

import xlwings

import xlwings as xw

 

【python之import语句语法

格式一:

import 模块名 [as 别名]

说明:1)将整个模块导入。2)[as 别名]部分可无,取别名简化引用。 3)使用导入模块中的成员的格式:模块名[或别名]. 成员

成员包括属性(变量)或函数。

 

格式二:

from 模块名 import 成员名或*

说明:1)导入模块中的某个成员,*代表所有成员。

若导入包中模块,将上面语法中的模块名改为 包名.模块名

 

详解请参见 https://blog.csdn.net/weixin_38256474

xlwings基本对象层次,参见下图:

 

新建应用(或叫打开Excel程序,一个应用xlwings的程序): app = xw.App(visible=True, add_book=False)

 

添加工作簿(book、workbook):excel文件(excel程序):wb = app.books.add()

保存工作簿:wb.save(f'D:\\example\\FileName.xlsx')

 

引用工作簿

工作簿应该首先被打开后,才以用如下语句引用工作簿:

wb.=xw.books['工作簿的名字‘]

对于活动工作簿,用如下语句引用

wb=xw.books.active

 

引用工作簿中的工作表(sheet):

sht=xw.books['工作簿的名字‘].sheets['sheet的名字']

wb=xw.books['工作簿的名字']

sht=wb.sheets[sheet的名字]

 

引用单元格:

假设引用A1单元格

rng=xw.books['工作簿的名字‘].sheets['sheet的名字']

sht=xw.books['工作簿的名字‘].sheets['sheet的名字']

rng=sht.range('A1')

特别提示:引用工作表(sheet)上的单元格方式比较灵活多样,先介绍这些,以后还将介绍。

 

关闭工作簿: wb.close()

关闭应用(Excel程序):app.quit()

 

例1、在目录“D:\example\练习01”(若此目录不存在请先建立之)中,新建名为test.xlsx工作薄,在sheet1表的A1单元格输入 “ABC123” ,然后保存关闭,退出Excel程序。代码如下:

import xlwings as xw #导入xlwings
app=xw.App(visible=True,add_book=False) #新建应用(或叫打开Excel程序)
wb=app.books.add() # 新建的工作簿wb,下一行对wb的sheet1的A1单元格赋值
wb.sheets['sheet1'].range('A1').value='ABC123'
wb.save(f'D:\\example\\练习01\\testA.xlsx') #保存工作簿
wb.close()
app.quit()

 

从上面例子可以了解,用xlwings库 读写excel大体步骤:

先导入xlwings,之后

应用->工作簿->工作表->读写范围(range)->关闭工作簿->关闭应用

 

例2、打开已保存的testA.xlsx,在sheet1表的A2单元格输入呵呵,然后保存关闭,退出Excel程序代码如下:

import xlwings as xw #导入xlwings
app=xw.App(visible=True,add_book=False) #新建应用(或叫打开Excel程序)
wb=app.books.open(f'D:\\example\\练习01\\testA.xlsx') # 打开工作簿(workbook)
wb.sheets['sheet1'].range('A2').value='呵呵' #对工作簿的sheet1的A1单元格赋值
wb.save()
wb.close()
app.quit()

 

例3、、打开已保存的testA.xlsx,在sheet1表的插入如下图所示的值,然后保存关闭,退出Excel程序。代码如下:

import xlwings as xw #导入xlwings

app=xw.App(visible=True,add_book=False) #新建应用(或叫打开Excel程序)

wb=app.books.open(f'D:\\example\\练习01\\testA.xlsx') # 打开工作簿(workbook)

sht = wb.sheets['sheet1'] # 页sheet1

# 同时插入行列

sht.range('a6').expand('table').value = [['a','b','c'],['d','e','f'],['g','h','i']]

# 在当前目录下生成文件

wb.save(f'D:\\example\\练习01\\testA.xlsx')

wb.close()

app.quit()

 

 

 

待续

猜你喜欢

转载自blog.csdn.net/cnds123/article/details/114446622