关于 excel:如何根据文档中的值更新 SharePoint 内容类型属性?

How can I update SharePoint content type properties, based on values in the document?

我正在使用 Excel 模板作为 Sharepoint 文档集中的自定义文档类型。
我有一些用于这种文档类型的自定义元数据,例如一个名为 Priority 的元数据,它是一个列表(低、中、高)。

我可以使用 ActiveWorkbook.ContentTypeProperties(Property).

从文档中读取元数据

有没有办法从文档中更改值?
我想要从文档内容派生的元数据值。


如您所述,通过 ContentTypeProperties 引用服务器元数据。为了从文档内容中获取它们,我曾经创建了一个工作表函数来执行此操作,您可以告诉所需的元数据名称和您希望更改的值,这是我的代码和注释 -

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Public Function zSETSERVERMETADATA(ByVal metaTypeName As String, Optional ByVal newValue As String ="") As String
'Recalculate upon every time any cell changes
Application.Volatile
'Set wb pointer trough caller parents
Dim wb As Workbook, r As Range, ws As Worksheet
Set r = Application.Caller
Set ws = r.Parent
Set wb = ws.Parent

'Clear unused elements
Set r = Nothing
Set ws = Nothing
On Error GoTo NoSuchProperty

'If value defined on newValue, set the value and showoutput
If newValue <>"" Then
    wb.ContentTypeProperties(metaTypeName).Value = newValue
    zSETSERVERMETADATA = wb.ContentTypeProperties(metaTypeName).Value
    Set wb = Nothing
    Exit Function
'If no value defined on newValue only show output but leave content type unchanged
Else
    zSETSERVERMETADATA = wb.ContentTypeProperties(metaTypeName).Value
    Set wb = Nothing
    Exit Function
End If

NoSuchProperty:
    zSETSERVERMETADATA = CVErr(xlErrValue)
    Set wb = Nothing
End Function

您可以像使用任何工作表函数一样使用它,例如,如果您想将名为 "Author" 的服务器元更改为值 "SickDimension",您可以使用公式 -

在单元格中调用该函数

1
=zSETSERVERMETADATA("Author";"SickDimension")

顺便说一句,在我的函数中,将第二个参数留空只会返回该字段的值。