【首发】Python 操作 Excel,从 xlwings 模块开始【月更第2篇】
【摘要】 本篇博客继续为大家带来 Python 操作 Excel 文件的相关知识点,核心涉及的模块为 xlwings。首先依旧是模块安装环节pip install xlwings 新建工作簿import xlwings as xwapp = xw.App(visible=True,add_book=False)# 新建工作簿 wb = app.books.add()print(wb)默认打开电脑上的 ...
本篇博客继续为大家带来 Python 操作 Excel 文件的相关知识点,核心涉及的模块为 xlwings
。
首先依旧是模块安装环节
pip install xlwings
新建工作簿
import xlwings as xw
app = xw.App(visible=True,add_book=False)
# 新建工作簿
wb = app.books.add()
print(wb)
默认打开电脑上的 office excel 软件。
打开已有工作簿
import xlwings as xw
app = xw.App(visible=True,add_book=False)
wb = app.books.open('测试表格.xlsx')
print(wb)
第二种方法是
import xlwings as xw
wb = xw.Book('测试表格.xlsx')
保存工作簿,退出 工作簿,退出 Excel
wb.save('测试表格2.xlsx')
wb.close()
app.quit()
操作 sheet
新建sheet,表对象
wb.sheets.add("mySheet")
删除sheet
wb.sheets["mySheet"].delete()
查看当前表格名
wb.sheets[1].name
清空整张表格的内容和格式
wb.sheets[1].clear()
重命名表格sheet
wb.sheets[1].name= "修改名称"
激活指定的sheet
wb.sheets["mySheet"].activate()
操作单元格
首先选中对应的 Sheet,然后进行实际操作,例如获取 A1
列数据
import xlwings as xw
# 设置表格不可见
app = xw.App(visible=False,add_book=False)
wb = app.books.open('测试表格.xlsx')
sheet = wb.sheets["测试"]
a1 = sheet.range('a1')
for cell in a1:
print(cell.value)
输出内容如下所示,对应匹配可以查看下图内容。
姓名
橡皮擦
打老虎
None
None
参考上述内容,可以读取一下 A1~C3
区域内容。
import xlwings as xw
# 设置表格不可见
app = xw.App(visible=False,add_book=False)
wb = app.books.open('测试表格.xlsx')
sheet = wb.sheets["测试"]
a1 = sheet.range('A1:C3')
for cell in a1:
print(cell.value)
输出如下内容
姓名
班级
年龄
橡皮擦
Python
18.0
打老虎
PHP
20.0
注意,由于上述代码没有关闭文件内容,所以在进程中会出现多个 Excel 进程,并且导致文件不可写。
写入数据
单个单元格写入
import xlwings as xw
# 设置表格不可见
app = xw.App(visible=True,add_book=False)
wb = app.books.open('测试表格.xlsx')
sheet = wb.sheets["测试"]
a1 = sheet.range('A1')
a1.value = "橡皮擦CA"
wb.save('测试表格.xlsx')
wb.close()
app.quit()
如果希望写入 A1~D1
数据,可以直接用列表进行复制。
sht.range('A1:D1').value = [1,2,3,4]
如果希望在 A2~A5
输入一列数据,参考下述代码,但是得到的并不是理想内容,得到的是一行数据。
import xlwings as xw
app = xw.App(visible=True,add_book=False)
wb = app.books.open('测试表格.xlsx')
sheet = wb.sheets["mySheet"]
sheet.range('A2:A5').value = [5,6,7,8] # 此时会从 A1 ~ A5 输入
wb.save('测试表格.xlsx')
wb.close()
app.quit()
修改次内容的办法如下
import xlwings as xw
app = xw.App(visible=True,add_book=False)
wb = app.books.open('测试表格.xlsx')
sheet = wb.sheets["mySheet"]
# sheet.range('A2:A5').value = [5,6,7,8] # 此时会从 A2 ~ D5 输入
sheet.range('A2').options(transpose=True).value = [5,6,7,8]
wb.save('测试表格.xlsx')
wb.close()
app.quit()
写入表格
代码如下所示
sheet.range('A1').expand('table').value = [['a','b','c'],['d','e','f'],['g','h','i']]
其它操作,例如修改单元格背景色
rng = sheet.range('A1')
rng.color=(255,0,0) # 设置range的背景颜色
获取 range 的总行数
rng = sheet.range('A1:A6')
a = rng.rows.count # range的总行数
print(a)
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)