使用Python遍历修改Excel单元格的值

Lan
Lan
2020-06-22 / 0 评论 / 1,879 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2020年06月22日,已超过1644天没有更新,若内容或图片失效,请留言反馈。

这次的任务要求是这样的


image.png

为了这位老哥的学习,于是就用Python帮了一把,一共300多题,要是一个个来还不得累死。

于是在线学习了一下Python操作Excel,需要用到一个模块openpyxl

源文件图:

image.png

成品图:

image.png

代码:

# -*- 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)


0

评论 (0)

取消