今天帮姨妹做一个excel的批量操作的事情,本来想用 C++ 做,结果发现 C++ 没有 python 好做这些事,就稍微研究了一下 python 对应 excel 的操作的用法。
空行上方是企业名称,企业负责人、企业负责人电话号码的信息
空行上方是企业名, 和对应的企业地址信息。
现在的需求是要把下方的企业地址信息填上上方对应企业的地址一列中(空白那一列)
首先需要按照python解释器(官网下载),然后按照一下插件,我使用的是vscode,直接在终端按照 openpyxl 插件。
pip install openpyxl
代码的思路是:使用字典存储下方企业名称和企业地址的对应关系,然后遍历上方的企业数组,遍历的企业名在字典中不为空,就把字典的 value 值 放到该行的对应位置上。
#coding=utf-8 import openpyxl from openpyxl import cell from openpyxl.reader.excel import load_workbook wb = load_workbook('old.xlsx') # 打开对应的文件 sheet = wb.worksheets[0] # 打开对应的表 ws = wb.active # 使用激活的表 dic = {} # 获取下方 企业名和地址对应的数据 for index in range(303,412): str1 = ws.cell(row = index,column = 3).value if str1 != None: dic[ws.cell(row = index,column = 3).value] = ws.cell(row = index,column = 7).value # 遍历上方的企业名 for index in range(4,297): str1 = ws.cell(row = index,column = 3).value.strip('\n') # 去掉企业名称的尾后换行符 # 如果企业名在字典中 if str1 in dic: ws.cell(row = index,column = 7,value=dic[str1]) # 将企业地址插入到后面一个单元格中 # 保持文件 wb.save("./old.xlsx")
我在找这份资料时,遇到最大的问题是如何提取出合并单元格的数据
在代码中,合并单元的信息是处于第一个单元格,其他单元格为空。
然后一个难点就是 openpyxl 库的使用
openpyxl详细教程_jingttkx的专栏-CSDN博客_openpyxl教程