这次的任务要求是这样的
为了这位老哥的学习,于是就用Python帮了一把,一共300多题,要是一个个来还不得累死。
于是在线学习了一下Python操作Excel,需要用到一个模块openpyxl
源文件图:
成品图:
代码:
# -*- coding: utf-8 -*-
"""
-------------------------------------------------
@ Author :Lan
@ Blog :www.lanol.cn
@ Date : 2020/6/21
@ Description:I'm in charge of my Code
-------------------------------------------------
"""
import re
import openpyxl
class QueClear:
def __init__(self, file):
self.file = file
self.wb = openpyxl.load_workbook(self.file)
self.sheet = self.wb.sheetnames[0]
self.ws = self.wb[self.sheet]
# 获取总行数
def getRowsClosNums(self):
rows = self.ws.max_row
columns = self.ws.max_column
return rows, columns
# 获取指定单元格的值
def getCellValue(self, row, column):
cellvalue = self.ws.cell(row=row, column=column).value
return cellvalue
# 修改指定单元格值
def setCelValue(self, a, b, cellvalue):
self.ws.cell(row=a, column=b, value=cellvalue)
if __name__ == '__main__':
# 实例化对象,打开文件
mytest = QueClear('errors.xlsx')
# 获取总行数
rows = mytest.getRowsClosNums()
# 遍历操作
for row in range(2, rows[0]):
# 获取正确选项
Answer = mytest.getCellValue(row, 4)
# 获取所有选项
Selects = mytest.getCellValue(row, 5)
# 在答案选项中匹配正确答案
result = Answer + ':' + re.findall(f'[{Answer}]:(.*?);', Selects)[0]
# 设置值
mytest.setCelValue(row, 4, result)
# 输出替换的结果,以表示程序没卡死
print(result)
# 保存操作结果
mytest.wb.save(mytest.file)