python的应用 | 一个工作簿中批量更新多个sheet中固定列的公式
需求:
一个工作簿里有10几个sheet,每个sheet里面固定的G列,是要输入同样的公式。不想每个表格去拉公式,该如何进行批量处理?
完整代码:
#20240510以这个为准 import openpyxl # 打开Excel文件 workbook = openpyxl.load_workbook('C:\\Users\\lxh\\Desktop\\123.xlsx') # 替换为你的Excel文件路径 # 遍历每个sheet for sheet_name in workbook.sheetnames: sheet = workbook[sheet_name] print(f"正在处理工作表: {sheet_name}") # 获取A列的数据范围 a_column_values = [cell.value for cell in sheet['A'] if cell.value is not None] #注意,每个sheet表格的行数不一样,所以要通过A列是否有值,来确定每个sheet有多少行 a_column_count = len(a_column_values) # 在G列中输入带有VLOOKUP函数的公式 for row_num in range(2, a_column_count + 2): # 从第二行到A列数据行数+1 cell = sheet.cell(row=row_num, column=7) # G列单元格 cell.value = f'=IFERROR(CONCATENATE("D:\\DDD\\Datasheet\\", VLOOKUP(A{row_num},\'C:\\lxh\\Desktop\\[工作簿.xlsx]Sheet\'!$A:$B,2,0)), "")' # 保存修改后的Excel文件 workbook.save('C:\\Users\\lxh\\Desktop\\123(带公式).xlsx') # 保存为新的Excel文件 print("公式输入完成!")
C:\\Users\\lxh\\Desktop\\123(带公式).xlsx 这个工作簿下每个sheet中的G列都是批量处理过,有公式的了。
本来想把这些带有公式的批量处理为数值格式的,不然每个sheet还得手工复制-粘贴为数值啊~~感觉批量处理这个公式显的没有意义了。。。。但是折腾了半天,还是不行,那就算了,放弃~如果有大神知道方法的话,可以告知我一下~