如何将SharePoint文档库元数据提取填入Excel工作表单元格中
方案1:使用VBA宏提取当前文件的同步属性
你在「文件>信息>属性」路径下看到的所有SharePoint同步属性,都存储在工作簿的CustomDocumentProperties集合中,用VBA可以直接批量提取到单元格:
- 打开目标Excel文件,按
Alt + F11调出VBA编辑器 - 右键点击左侧面板中当前工作簿名称,选择「插入」>「模块」
- 将如下代码粘贴到编辑窗口:
Sub ExtractSPPropertiesToCells() Dim ws As Worksheet Dim prop As Object Dim rowNum As Integer ' 新建工作表存放元数据,也可替换为你指定的现有工作表 Set ws = ThisWorkbook.Worksheets.Add ws.Name = "SP元数据" rowNum = 1 ' 写入表头 ws.Cells(rowNum, 1) = "属性名称" ws.Cells(rowNum, 2) = "属性值" rowNum = rowNum + 1 ' 遍历提取所有SharePoint同步的自定义属性 On Error Resume Next For Each prop In ThisWorkbook.CustomDocumentProperties ws.Cells(rowNum, 1) = prop.Name ws.Cells(rowNum, 2) = prop.Value rowNum = rowNum + 1 Next prop ' 自动调整列宽 ws.Columns("A:B").AutoFit End Sub
- 按
F5运行宏即可完成提取,如果需要将指定属性写入固定位置的单元格,修改代码中单元格定位逻辑即可。
注意:如果文件没有启用宏,可另存为.xlsm格式后再运行代码
方案2:使用Power Query批量拉取整个文档库元数据
如果需要一次性提取整个文档库所有文件的元数据,无需逐个打开文件,用Power Query效率更高:
- 打开空白Excel文件,点击「数据」选项卡>「获取数据」>「从联机服务」>「从SharePoint Online站点」
- 输入你的SharePoint站点地址,完成账号验证后在导航器中选中目标文档库,点击「转换数据」
- 进入Power Query编辑器后可直接看到所有自定义列,包括选择项、托管元数据、文本列,按需筛选整理后点击「关闭并上载」即可批量导入到工作表。
托管元数据格式处理说明
提取到的托管元数据默认格式为显示值|GUID,可直接用函数提取纯显示内容:
- 单值托管元数据:用
TEXTBEFORE(单元格位置,"|")即可取出纯显示名称 - 多值托管元数据:先通过
TEXTSPLIT(单元格位置,";")拆分多个值,再逐一提取显示名称即可。
内容的提问来源于stack exchange,提问作者Gmorken
相关产品推荐
相关产品推荐

