求python代码,已知Excel密码,批量打开带密码工作簿并另存替换原文件
def xls_save_as_xlsx(data_path):for dirpath,dirname,filenames in os.walk(data_path): #os.walk()遍历文件
for fname in filenames:
file_name=os.path.join(dirpath,fname) #os.path.join()合并路径
folder,name=os.path.splitext(file_name) #分解扩展名
if file_name.endswith('.xls'):
df=pd.read_excel(file_name) #pandas读xls文件
df.to_excel(f"{folder}.xlsx",index=False) #pandas写入xlsx
print(f'{file_name} 转换成功啦!O(∩_∩)O哈哈~')
os.remove(file_name) #删除原xls文件(如果需要两种格式同时存在删除此代码
#print('更改格式完成')
data_path=r"C:\Users\EDY\Desktop\文件" #文件路径
xls_save_as_xlsx(data_path) #调用一下,转换完成
#print('------0、xls已更改为xlsx格式')
以上是我自己写的没有密码工作簿,批量打开多个工作簿并改为xlsx格式,保存替换原文件,有密码的代码怎么写?,如果我代码复杂、看不懂等可以按照你的逻辑重新写代码 如果你想用python处理密码保护的Excel文件,你可以使用 openpyxl 库,该库可以处理 .xlsx 文件。由于pandas不直接支持读取密码保护的Excel文件,因此我们需要稍作修改。这是一个示例代码:
import os
from openpyxl import load_workbook
def unlock_excel_files(data_path, password):
for dirpath, dirname, filenames in os.walk(data_path):
for filename in filenames:
file_path = os.path.join(dirpath, filename)
if file_path.endswith('.xlsx'):
wb = load_workbook(filename=file_path, read_only=False, keep_vba=True, data_only=True, keep_links=False, password=password)
wb.save(file_path)
print(f'文件 {file_path} 已成功解锁并保存。')
data_path = r"C:\Users\EDY\Desktop\文件"# 文件路径
password = "你的密码"# Excel文件的密码
unlock_excel_files(data_path, password)
在这个例子中,我们使用 os.walk 函数遍历指定目录中的所有文件,并使用 endswith('.xlsx') 方法过滤出.xlsx文件。然后,我们使用 openpyxl.load_workbook 函数打开每个Excel文件,并提供密码参数以解锁密码保护的工作簿。最后,我们使用 workbook.save 方法将修改保存到原始文件中。
注意: openpyxl 不支持旧的 .xls 文件格式,因此这个脚本只能用于 .xlsx 文件。如果你有 .xls 文件,你需要先将它们转换为 .xlsx 格式。你可以使用如 xlrd 和 xlwt 等库进行转换,但是这些库不支持密码保护的Excel文件,所以这需要在没有密码保护的情况下进行。 isdkz 发表于 2023-5-23 15:33
如果你想用python处理密码保护的Excel文件,你可以使用 openpyxl 库,该库可以处理 .xlsx 文件。由于pandas ...
PS C:\Users\EDY\Desktop\python> & C:/Users/EDY/AppData/Local/Programs/Python/Python311/python.exe "c:/Users/EDY/Desktop/python/解密工作簿 copy.py"
PS C:\Users\EDY\Desktop\python> & C:/Users/EDY/AppData/Local/Programs/Python/Python311/python.exe "c:/Users/EDY/Desktop/python/解密工作簿 copy.py"
Traceback (most recent call last):
File "c:\Users\EDY\Desktop\python\解密工作簿 copy.py", line 15, in <module>
unlock_excel_files(data_path, password)
File "c:\Users\EDY\Desktop\python\解密工作簿 copy.py", line 9, in unlock_excel_files
wb = load_workbook(filename=file_path, read_only=False, keep_vba=True, data_only=True, keep_links=False, password=password)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: load_workbook() got an unexpected keyword argument 'password'
PS C:\Users\EDY\Desktop\python>
工作簿打开另存为xlsx格式了,添加完密码,运行报错了,以上为报错内容
页:
[1]