VB.Net Excel自动化如何处理灵敏度标签



当我在VB中为用户创建Excel文件时。当我试图保存文件时,我得到一个错误("当文件为只读时,您无法执行此操作"),这似乎是因为没有选择敏感标签。在执行Excel自动化时,我没有找到任何关于处理敏感标签的文档,所以我想知道是否有人遇到这个问题或知道任何文档?是否有一种方法来设置灵敏度编程?

我创建了一个模板文件(存储在数据库中并带到本地机器中),我设置了敏感性,然后填充它,而不是通过自动化过程创建Excel文件。

语法是Python,因为这是我使用的,但由于win32com.client只是一个COM包装器,这应该(使用适当的VB语法)为您工作。

您将需要以下数据,您可以从先前手动将灵敏度标签设置为所需值的文件中提取这些数据:

existing_sl = existing_doc.SensitivityLabel.GetLabel()
label_id = existing_sl.LabelId
label_name = existing_sl.LabelName

label_id为UUID,label_name为字符串。然后,使用这些数据,您可以创建和设置一个新的灵敏度标签,如下所示。

label_id = <the label ID you retrieved from the existing file>
label_name = <the label name your retrieved from the existing file>
new_sl = another_doc.SensitivityLabel.CreateLabelInfo()
new_sl.ActionId = str(uuid.uuid1())
new_sl.AssignmentMethod = 1
new_sl.ContentBits = 0
new_sl.IsEnabled = True
new_sl.Justification = ''
ew_sl.LabelId = label_id 
new_sl.LabelName = label_name 
new_sl.SetDate = '2022-08-15T07:02:00Z'
new_sl.SiteId = str(uuid.uuid1())
another_doc.SensitivityLabel.SetLabel(new_sl, new_sl)

uuid.uuid1()函数只是一个python函数,用于创建一个随机UUID。你也可以用别的东西或者固定的东西。我没有彻底地发短信,但它至少对随机的一个有效。据我所知,SiteId变量不必与原始标签中的相同。至于SetDate,我只是懒惰,并将其设置为一些值。在完全正确的情况下,您可以使用now或等效函数来生成(格式正确的)日期时间字符串。

AssignmentMethod使用MsoAssignmentMethod枚举。1只是">标签是手动选择的"

Python代码需要以下导入

import win32com.client
import uuid

你可以在这里和这里找到一些参考资料。

如果你设法让它在VB中工作,请随意发布结果:)

最新更新