有没有一种方法可以在Excel中使用VBA从Sharepoint检索文件元数据而无需打开每个文件?

时间:2020-05-07 16:45:09

标签: excel vba sharepoint

我的目标是向用户展示一种从excel的VBA用户窗体中预览Sharepoint上存储的文件的详细信息的方法。到目前为止,我已经可以使用Scripting.FileSystemObject来检索文件列表。

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

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

根据我自己的理解,我正在走向未知的领域,因此对您的帮助或进一步阅读的指导将不胜感激。

谢谢!

edit:现有代码仅依靠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)相对于我需要从中获取信息的字段) 但是,我要确定的是是否存在另一种不需要打开工作簿的方法。

1 个答案:

答案 0 :(得分:0)

深入研究问题,我在http://www.cpearson.com/excel/docprop.aspx上发现了以下内容: “ VBA不直接支持从关闭的文件中读取属性。但是,Microsoft已免费提供了一个名为DSO OLE文档属性读取器2.1的DLL文件,或简称为DSOFile.dll。使用此DLL,您可以读取BuiltIn和Custom OLE文件(例如XLS工作簿)中的属性。”