首页 > 解决方案 > 有没有办法在 Excel 中使用 VBA 从 Sharepoint 中检索文件元数据,而无需打开每个文件?

问题描述

我的目标是向我的用户展示一种在 Excel 中的 VBA 用户表单中预览存储在 Sharepoint 上的文件详细信息的方法。到目前为止,我能够使用Scripting.FileSystemObject.

我知道我可以ContentTypeProperties用来访问我想要的信息,但这似乎取决于打开每个文件。是否有其他方法可以让我访问元数据而无需打开每个文件?

我不是 Sharepoint 的狂热用户,所以请原谅我使用的术语。

就我自己的理解而言,我正在进入未知领域,因此非常感谢任何帮助或进一步阅读的指示。

谢谢!

编辑:现有代码仅依赖于Scripting.FileSystemObject检索文件名。

Private Sub UserForm_Activate()
Dim spURL As String
Dim oFile As Object, oFSO As Object, oFldr As Object, oFiles As Object, oDSO As Object
Dim ext As String, title As String
spURL = **sharepoint url**

Set oFSO = CreateObject("Scripting.Filesystemobject")
Set oFldr = oFSO.getfolder(spURL)
Set oFiles = oFldr.Files

For Each oFile In oFiles
    If InStr(1, ext, "xls") Then
        Me.cboFiles.AddItem oFile.Name
    End If  
Next
Set oFSO = Nothing
Set oFldr = Nothing
Set oFiles = Nothing
End Sub

现在假设我想获取文档类型,这是当文件签入到共享点时文档属性中的自定义字段,我知道我可以执行以下操作:

set wb = workbooks.open(spURL & oFile.Name)
debug.print wb.ContentTypeProperties.Item(x).Value

(其中 Item(x) 与我需要从中提取信息的字段相关)但是,我要确定的是是否存在不需要打开工作簿的替代方法。

标签: excelvbasharepoint

解决方案


深入研究一些东西,我在http://www.cpearson.com/excel/docprop.aspx上找到了以下内容:“VBA 不直接支持从关闭的文件中读取属性。但是,微软已经免费提供下载一个名为 DSO OLE Document Properties Reader 2.1 的 DLL 文件,或简称为 DSOFile.dll。使用此 DLL,您可以从 OLE 文件(例如 XLS 工作簿)中读取 BuiltIn 和 Custom 属性。


推荐阅读