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还得手工复制-粘贴为数值啊~~感觉批量处理这个公式显的没有意义了。。。。但是折腾了半天,还是不行,那就算了,放弃~如果有大神知道方法的话,可以告知我一下~

posted @ 2024-05-10 16:01  优秀的进度条  阅读(55)  评论(0编辑  收藏  举报