打开并保存 excel 个工作簿以修复它们

Open and save excel workbooks to repair them

我在一个文件夹中有一些损坏的工作簿,可以通过 openpyxl 读取,但是如果我打开它们并保存它们,它们就会被修复。 关于如何有效地完成这项工作,您有什么建议吗?

目前我的解决方案是使用 pyautogui,单击每个单独的文件以打开并保存它。解决方案很慢,我无法按名称 select 文件。

希望你能给我指明更好的方向。

#更新: 解决方案 1: 我使用以下代码找到并打开文件:

filename = ["C_72_00_a.xlsx", "C_73_00_a.xlsx", "C_74_00_a.xlsx", "C_76_00_a.xlsx"]
path = "D:\Python\Intradag_opdater\04\2022-04-04\LCR skema"

def clean(file_in):
    with open(os.path.join(path, file_in), 'w+') as f:
        pyautogui.hotkey('ctrl', 's')

for x in filename:
    clean(x)

打开文件时,我按“ctrl”+“s”。

解决方案 2:

基本相同,但我在这里使用打开文件:

file_t = os.path.join("D:\Python\Intradag_opdater\04\2022-04-04\LCR skema", "C_76_00_a.xlsx")
os.startfile(file_t,'edit')

我希望这对以后的其他人有所帮助。

这解决了问题:

filename = ["C_72_00_a.xlsx", "C_73_00_a.xlsx", "C_74_00_a.xlsx", "C_76_00_a.xlsx"]
path = "D:\Python\Intradag_opdater\04\2022-04-04\LCR skema"

def clean2(file_in):
    #solution 2
    open = os.path.join(path, file_in)
    os.startfile(open,'edit')
    #tilføj time sleep start og luk excel
    time.sleep(5)
    pyautogui.hotkey('ctrl', 's')
    pyautogui.hotkey('alt', 'f4')


for x in filename:
    clean2(x)
    print(x)

如果我使用 os 打开,文件会损坏我不知道为什么,但也许它对某些人有用:

def clean(file_in):
    with open(os.path.join(path, file_in), 'w+') as f:
        pyautogui.hotkey('ctrl', 's')

for x in filename:
    clean(x)
    print(x)