How can I update SharePoint content type properties, based on values in the document?
我正在使用 Excel 模板作为 Sharepoint 文档集中的自定义文档类型。
我有一些用于这种文档类型的自定义元数据,例如一个名为 Priority 的元数据,它是一个列表(低、中、高)。
我可以使用
从文档中读取元数据
有没有办法从文档中更改值?
我想要从文档内容派生的元数据值。
如您所述,通过 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") |
顺便说一句,在我的函数中,将第二个参数留空只会返回该字段的值。