pandas 使用python设置excel文件的敏感度标签

bkhjykvo  于 2023-03-16  发布在  Python
关注(0)|答案(1)|浏览(404)

我尝试使用openpyxl将数据框加载到excel模板中,并以最高敏感度设置保存。该模板有5个敏感度级别,由Microsoft管理员设置,最高级别为“高度保护”。Pic for reference
模板保存为“高度保护”,但一旦加载数据,新文件将恢复为“一般业务”标签。

# Load template file
template_path = filepath.xlsx
tmpwb = openpyxl.load_workbook(template_path)

#   select sheet
sheet = tmpwb['Data']

# update columns names
for i, col in enumerate(df.columns):
    sheet.cell(row=2, column=i+1).value = col

# update main data table
for i, col in enumerate(df.columns):
    for j, df_value in enumeratedf[col]):
        sheet.cell(row=j+3, column=i+1).value = df_value

file_path = savepath.xlsx

# save workbook
tmpwb.save(file_path)

有没有办法用python控制灵敏度设置?谢谢你的提示。

oxcyiej7

oxcyiej71#

敏感度标签为Office365参数,可使用xlwings和pywin32 API进行修改。
您首先需要做的唯一一件事是找出分类的各个ID。

import xlwings as xw
wb = xw.Book('test.xlsx') #A workbook with a set activity label

labelinfo = wb.api.SensitivityLabel.GetLabel()
print(labelinfo.LabelId)
>>> 123123123-123123123-ajskldfj123  (as an example ID, this will look different for each LabelName)

这将为您提供敏感度标签的ID,然后您可以将其传递到最后修改的xls。这将为每个LabelName提供不同的ID。因此,您首先(一次性操作)需要找出这些敏感度标签的公司ID,然后设置标签,如下所示:

wb = xw.Book('test.xlsx')
labelinfo = wb.api.SensitivityLabel.CreateLabelInfo()
labelinfo.AssignmentMethod = 2
labelinfo.Justification = 'init'
labelinfo.LabelId = 'YOUR-ID-GOES-HERE'
wb.api.SensitivityLabel.SetLabel(labelinfo, labelinfo)

这将正确设置您的灵敏度标签。
您可以了解有关此here的详细信息

相关问题