我正在下载Excel文件使用下面的代码在网上找到,但下载后,当尝试打开文件得到错误- Excel无法打开文件,因为文件格式无效...”
这个问题只是与文件下载使用下面的代码,如果我直接下载它的工作正常
我使用Office 365
Private Declare Function URLDownloadToFile Lib "urlmon" Alias _
"URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal _
szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Sub download_file()
Dim downloadStatus As Long
Dim url As String, destinationFile_local As String
url = "http://sp2019/library/test.xlsx"
destinationFile_local = "C:\test.xlsx"
downloadStatus = URLDownloadToFile(0, url, destinationFile_local, 0, 0)
If downloadStatus = 0 Then
MsgBox "Download successfully"
Else
MsgBox "Download failed"
End If
End Sub
3条答案
按热度按时间gijlo24d1#
我有一个解决办法,或者至少是一个变通办法,尽管我不能确切地解释为什么它会起作用。背景资料:我在包含链接的SharePoint列表的数据库中使用URLDownloadToFile。有问题的子目录使用SQL针对与我要下载的文件位于同一站点上的链接SharePoint列表创建一个记录表,如果记录表的记录计数大于0,则下载文件。这一切都很好。
在最近的一些跟踪问题的测试过程中,我创建了一个sub,它调用相同的URLDownloadToFile例程来下载相同的文件,但之前没有创建记录。每当我运行子程序时,最终在目标文件夹中的文件将是194 KB,并包含HTML。
通过反复试验,我发现只要我在运行文件下载代码之前使用链表创建了一个记录表,它就可以正常工作,即使我注解掉包含记录表创建的代码,只要我保持数据库打开,它也可以正常工作。实际上,在运行URLDownloadToFile之前,您需要执行一些操作来打开到SharePoint站点的连接。希望这对你有帮助。
ubof19bj2#
你完全可以用URL路径打开文件:
https://SITE//PATH/File.extension
路径可能很棘手,我建议你在线打开Excel文件,然后点击Viewwing:“在桌面应用程序中打开”
然后点击Excel桌面应用程序>文件>信息复制文件路径这是一个非常可靠的SharePoint URL来源,你绝对可以使用它。
pb3s4cty3#
URLDownloadToFile函数对我不起作用。它下载了一些html代码inestead的Excel文件
仅对于Excel文件,我使用Excel.Application对象在后台打开文件,然后将其保存到本地文件夹中:
获得正确的URL对我来说并不明显。只是复制Sharepoint的URL,而文件在浏览器中打开,并使用它与此功能不会工作。我不得不在Excel中使用打开文件对话框打开文件,写入shareponit文件夹并导航到文件子文件夹。我得到了这样的东西: