我正在测试以下代码,但是,虽然生成了我需要的文件(每个唯一业务区域 1 个文件——这是数据框的索引列),但它没有密码保护它。有什么想法吗?
import os
import pandas as pd
import numpy as np
from openpyxl.workbook.protection import WorkbookProtection
grouped = list(consolidated_df.groupby(['Business Region']))
passwords = {'AE': 'AE_',
'CH': 'CH',
'CZ': 'CZ',
'DK': 'DK',
'ES': 'ES',
'FI': 'FI',
'FR': 'FR',
'HQ': 'HQ',
'NL': 'NL',
'NO': 'NO',
'PE': 'PE',
'PT': 'PT',
'SE': 'SE',
'SK': 'SK',
'TMC': 'TMC',
'London': 'GB',
'York': 'GB'}
for df in grouped:
region = df[0]
name = str(df[1].index.unique().format()).replace("'", '').replace("[", '').replace("]", '')
path = os.path.join(filepathtovalidate, f'{name} DM4 Oracle Load.xlsx')
writer = pd.ExcelWriter(path)
df[1].to_excel(writer, index=False)
workbook = writer.book
workbook.security = WorkbookProtection(workbookPassword=passwords.get(region))
writer.save()
要添加密码,您需要指定只写模式,您应该更改编写器:
writer = pd.ExcelWriter(path, engine='openpyxl', write_only=True)