Итак, я пытаюсь открыть несколько книг Excel и внести в них изменения, но они защищены, и я не знаю, как реализовать xlrd, чтобы он работал.Все работает с незащищенными книгами, но когда я добавляю к ним пароль, я получаю сообщение об ошибке XLRDError: Can't find workbook in OLE2 compound document
, связанное с частью data = pd.read_excel(f,header=2)
.
Вот мой код:
import os
import win32com.client
import glob
import pandas as pd
from xlrd import *
path = r'C:\...'
files = os.listdir(path)
dfs = []
for f in glob.glob(path + "/*.xlsx"):
**xlApp = win32com.client.Dispatch("Excel.Application")
xlwb = xlApp.Workbooks.Open(f, False, True, None, 'fernanda')**
data = pd.read_excel(f,header=2)
dfs.append(data)
"""Columns we're going to to manipulate"""
date = "DATE OF CHANGE"
id = "ID"
df = pd.concat(dfs)
df[date] = pd.to_datetime(df[date], errors='coerce')
master = df.groupby(id).min()
for i in dfs:
i[date] = i.join(master,rsuffix='_adj',on=id)[[date+"_adj"]]
r = zip(dfs,glob.glob(path + "/*.xlsx"))
r_list = list(r)
for i in r_list:
writer = pd.ExcelWriter(i[1])
i[0].to_excel(writer,'sheet1', startrow=2)
writer.save()
Может кто-нибудь помочь?Спасибо