软件测试|Python高手教你玩转 Excel 自动化

举报
霍格沃兹测试开发 发表于 2023/02/07 18:19:53 2023/02/07
【摘要】 在日常的工作中,对 Excel 的操作必不可少,如果涉及到大量的 Excel 操作的话,手动处理效率还是比较低的,因此 Excel 自动话完全有必要,今天和大家分享一下如何利用 Python 来批量化处理 Excel。 安装库Python 操作 Excel 主要用到两个库 xlrd 和 xlwt,前者负责读,后者负责写。可以直接通过 pip 命令安装这两个库。pip3 install xlr...

在日常的工作中,对 Excel 的操作必不可少,如果涉及到大量的 Excel 操作的话,手动处理效率还是比较低的,因此 Excel 自动话完全有必要,今天和大家分享一下如何利用 Python 来批量化处理 Excel。

安装库

Python 操作 Excel 主要用到两个库 xlrd 和 xlwt,前者负责读,后者负责写。
可以直接通过 pip 命令安装这两个库。

pip3 install xlrd
pip3 install xlwt

实践

咱先来看看读取模块,有如下的 Excel 文件。

在这里插入图片描述

  1. 获取 sheet
file_path = './person.xls'
data = xlrd.open_workbook(file_path)

names = data.sheet_names()
print(names)

# 输出结果
['list']

当然,通过下标或者名称来获取指定的 sheet也是可以的。

sheet = data.sheets()[0]
print(sheet)

sheet = data.sheet_by_name('list')
print(sheet)

# 输出结果
Sheet  0:<list>
Sheet  0:<list>
  1. 行列操作

Excel 里每一个 sheet 都是由行和列组成的,先来看看行和列的操作。

rows = table.nrows
print(rows)
# 输出结果
4

cols = table.ncols
print(cols)
# 输出结果
3

print(table.row_slice(1))
# 输出结果
[text:'张三', number:18.0, text:'男']

通过行和列来读取 Excel 表格数据。

for row in range(rows):
    for col in range(cols):
        print(table.cell(row, col), table.cell_type(row, col))

# 输出结果
text:'name' 1
text:'age' 1
text:'sex' 1
text:'张三' 1
number:18.0 2
...

通过行和列向 Excel 中写入数据,写入数据就需要用xlwt这个库闪亮登场了。

import xlwt
workbook = xlwt.Workbook(encoding=ascii)
worksheet = workbook.add_sheet('my sheet')  # 创建工作表

for i in range(10):
    for j in range(10):
        worksheet.write(i, j, i + j)  # 写入内容

workbook.save('data.xls')

在这里插入图片描述

当然,我们也可以对单元格做一些设置。

# 更改列宽:
worksheet.col(10).width = 256 * 20

# 更改行高:
style = xlwt.easyxf('font:height 360;')  # 18pt,类型小初的字号
row = worksheet.row(10)
row.set_style(style)

# 填充颜色
pattern = xlwt.Pattern()
pattern.pattern = xlwt.Pattern.SOLID_PATTERN
pattern.pattern_fore_colour = 2

style = xlwt.XFStyle()
style.pattern = pattern
worksheet.write(4, 4, '填充颜色', style)

# 边框样式
borders = xlwt.Borders()
borders.left = xlwt.Borders.DASHED
borders.right = xlwt.Borders.DASHED
borders.top = xlwt.Borders.THIN
borders.bottom = xlwt.Borders.THICK

style = xlwt.XFStyle()
style.borders = borders
worksheet.write(5, 5, '边框样式', style)

# 合并单元格
worksheet.write_merge(6, 7, 7, 9, '合并单元格')  # 合并 6-7 行,7-9 列

在这里插入图片描述

总结

本文和大家分享了如何通过 Python 来批量处理 Excel,希望能提高一下小伙伴们的工作效率。

关于 Excel 你有什么一些神操作方式呢,可以评论区和大家分享一下呀~

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。