首先,excel表格属于一种文件,处理它肯定伴随着文件的处理,那么,我们先来看看文件的处理方式:
删除某个路径下的文件,需要用到os模块(直接import即可)
os.remove(r"filepath")
使用openpyxl模块之前需要对其进行安装,有时候安装失败,需要进入site_packages目录进行安装:
pip install openpyxl
导入openpyxl模块
import openpyxl
对已经存在的excel表做处理
wd = openpyxl.load_workbook(r'm.xlsx') # 打开excel文件
sheet1 = wd['Sheet1'] # 获取名为Sheet1的工作表
print(sheet1.title) # 输出表名称
sheet2 = wd.active # 获取wdexcel文件中活动的工作表
print(sheet2.title) # 输出活动工作表的名称
sheet['A6'] = 3.14 # 获取表的单元格
print(sheet['A6'].value) # 对单元格进行赋值并打印
def write_save_xls(self, wbname):
fields = ['书籍名称', '作者', '出版社', '出版日期']
datas = [['python web开发', '董伟明', '人民教育出版社', '2018/02/09'], ['Python自动化', '廖雪峰', '机械工业出版社', '2018/02/09']]
cwb = openpyxl.Workbook() # 创建一个工作表对象
cwb.save(filename=wbname) # 保存工作表
print("已经创建工作表:" + wbname)
wb = openpyxl.load_workbook(wbname) # 打开工作簿
ws1 = wb.create_sheet('书籍汇总', 0) # 创建一个工作表,名为:测试结果汇总
ws1.sheet_properties.tabColor = '1072BA' # 指定工作表的背景颜色
for field in range(1, len(fields)+1): # 写入表头内容
_ = ws1.cell(row=1, column=field, value=fields[field-1])
for row_data in range(2, len(datas)+2): # 写入表数据,注意index变化
for col_data in range(1, len(datas[row_data-2])+1):
_ = ws1.cell(row=row_data, column=col_data, value=datas[row_data-2][col_data-1])
wb.save(filename=wbname) # 操作完成后需要保存表才能查看excel表
print("保存成功")
可能遇到的问题:
1.可以打印创建excel表成功,但是没有看到生成对应的表格,原因可能是操作完成后没有对工作簿进行保存。
需要在结尾追加:
wb.save(filename=wbname)
2.在对excel文件进行读写操作时,其后缀名必须加上.xlsx,否则会报找不到文件错误
3.程序运行时,excel中不能有同名的文件已经打开,否则会报:
typeerror:PermissionError: [Errno 13] Permission denied
小结:
对excel的操作可嵌套在数据库的数据处理,串口的数据读写等作用上,同时自动化测试的结果比对也是相当重要的一环。
openpyxl的官方文档地址:http://openpyxl.readthedocs.io/en/default/usage.html