是否可以在Excel中使用Python动态更改公式引用的路径?

2024-10-04 05:29:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我们正处于文件共享迁移的阶段,有相当多的excel文件包含公式,引用了旧的文件共享地址

是否可以将包含对旧文件共享的引用的所有公式动态更改为新文件共享

如果可能的话,你能为我提供一些python代码来实现这一点吗

Q:\general\2021\[excel_file.xlsm] # Old filepath

I:\general\2021\[excel_file.xlsm] # New filepath

Tags: 文件代码new地址动态excel阶段old
1条回答
网友
1楼 · 发布于 2024-10-04 05:29:38

假设您只需要替换文件test.xlsx第一页上所有单元格中的一些文本。可以这样做:

import win32com.client

app = win32com.client.Dispatch("Excel.Application")
wb = app.Workbooks.Open(r"d:\temp\test.xlsx")

sheet = wb.Sheets(1)
sheet.Cells.Replace("Q:\\general\\2021\\", "I:\\general\\2021\\")

wb.Save()
wb.Close()

如果您有许多工作表和许多xlsx文件,则可以添加循环以读取所有文件及其所有工作表:

from pathlib import Path
import win32com.client

folder = Path.cwd()                  # current folder
files = list(folder.rglob("*.xlsx")) # all xlsx files from the folder and subfolders

app = win32com.client.Dispatch("Excel.Application")

for f in files:                      # loop through all files
    wb = app.Workbooks.Open(f)

    sheets = wb.Sheets
    for i, sh in enumerate(sheets):  # loop through all sheets
        sh = wb.Sheets(i+1)
        sh.Cells.Replace("Q:\\general\\2021\\", "I:\\general\\2021\\")

    wb.Save()
    wb.Close()

相关问题 更多 >