查询使用ADO的UFT在UFT中通过VBScript保存在SharePoint上的电子表格
我想查询保存在SharePoint上的Excel电子表格,就像数据库一样。
出于某种原因,我能够完美地查询Excel电子表格,当它是本地电子表格时,而不是当它在SharePoint上。查询使用ADO的UFT在UFT中通过VBScript保存在SharePoint上的电子表格
我能够使用Excel.Application
对象从UFT中的VBScript打开Spreadsheet,但不能在我将SharePoint链接放入连接字符串数据源时使用。我已经试过如下:
- 从
/
到\
更改斜线和投入%20
没有运气取出空白。 -
将“数据源”更改为“数据库”,包括可信连接和包括用户名和密码。这里是我的连接字符串/代码:
(失败)
ExcelFileLocation = "http://sharepointlocation/folders/spreadsheet.xlsx"
(工程)
ExcelFileLocation = "C:\projects\spreadsheet.xlsx"
当我做这些行,但它却可以从SharePoint电子表格,但我尽量避免遍历行/列来查找我想要的数据。
TemExcel.Workbooks.Open "http://sharepointlocation/folders/spreadsheet.xlsx"
TempExcel.ActiveWorkbook.SaveAs "C:\projects\Temp.xlsx"
TempExcel.Application.Quit
objConnection.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ExcelFileLocation & ";Extended Properties=""Excel 8.0;HDR=Yes;"";"
objRecordSet.Open ExcelQuery,objConnection,adOpenStatic,adLockOptimistic,adCmdTest
使用UNC路径指向SharePoint位置。
喜欢的东西\\sharepointlocation\folder\spreadsheet.xlsx
(注协议前缀的双斜线和缺乏)。
另一种方法是将驱动器号映射到SharePoint库的UNC路径,然后尝试打开文件,就像您在本地计算机上的文件一样。
这有效,除了我在注释中注意到的以下问题。我遇到了Windows安全对话框,通常会在手动执行时弹出。在使用Excel作为数据源时,您是否知道如何将Integration Security包含到连接字符串中? –
不幸的是,UNC路径使用WebClient(基于WebDAV的)服务,该服务根据[这个问题](http://stackoverflow.com/questions/38020887/vba-sharepoint-authentication-for-drive-mapping))不支持通常的身份验证cookie,因此提示。在计算机重新启动时(尝试强制进行身份验证),您可能会使用启动脚本导航到所需的SharePoint目录,但这可能对最终用户来说太过侵入。 – Thriggle
感谢您的领导!我有一个计划B,只需通过Excel.Application对象打开文件,并保存到本地驱动器上的临时文件,这应该照顾到这一点。我只是想避免这种情况,但这对我需要的解决方案来说很好。感谢你的帮助! –
你提到改变斜线的方向并没有帮助。您是否尝试过使用UNC路径到SharePoint位置?像'\\ sharepointlocation \ folder \ spreadsheet.xlsx'(注意双斜线和缺少协议前缀)。另一个选项是将驱动器号映射到SharePoint库的UNC路径,然后尝试打开文件,就像您在本地计算机上的文件一样。 – Thriggle
我刚刚尝试过,它的工作原理!非常感激。我以为我已经试过了,但我想我没有把所有的东西都完全切换到UNC。再次感谢! –
太棒了!我将添加它作为答案。 (如果你已经尝试过并且它没有工作,我只是不想提出它作为答案。) – Thriggle