问题描述:企业内创建excel进行后续操作之后保存的时候,会跳出来显示sensitivity label的选项,此时必须手动去选择下拉列表的选项
解决办法:
1.首先依据现有的企业内部的excel得到不同的LabelId:
import xlwings as xw
wb=xw.Book("选择的excel路径名字")
labelId=wb.api.SensitivityLabel.getLabel().LabelId
2.依据上述不同的LabelId创建一个枚举类进行封装con_data.py:
import enum
class SensiLabel(enum.Enum):
#此处显示的时上述得到的ID值
Public='a'
Internal='b'
Confidential='c'
Restricted='d'
3.编写新建excel的代码块
from con_data import SensiLabel
import xlwings as xw
import os
class SenExcel():
def __init__(self):
self.absPath = r"文件夹路径"
self.relativePath=os.getcwd()
self.absFile=__file__
def new_excel(self,fileName):
self.newExcel = os.path.join(self.absPath, fileName)
print(self.relativePath)
print(self.absFile)
return self.newExcel
def handle_sen(self):
self.newExcel=SenExcel.new_excel(self, fileName='test3.xlsx')
app = xw.App(visible=True,add_book=False) # 创建一个不可见的Excel应用程序实例,不添加新的工作簿
workbook = app.books.add()
labelinfo =workbook.api.SensitivityLabel.CreateLabelInfo()
labelinfo.AssignmentMethod = 2
labelinfo.Justification = 'init'
labelinfo.LabelId = SensiLabel.Confidential.value
workbook.api.SensitivityLabel.SetLabel(labelinfo, labelinfo)
wb=workbook.save(self.newExcel)
workbook.close()
app.quit()
if __name__ == '__main__':
Data = SenExcel()
Data.handle_sen()