如何用PowerShell的ImportExcel模块读取SharePoint文档库中的Excel文件?
ImportExcel模块本身不支持直接读取SharePoint的Web链接(HTTPS)或未映射的UNC路径,这就是你遇到"file not found"错误的核心原因。下面是几种可行的解决办法:
方法1:将SharePoint文档库映射为网络驱动器
先把SharePoint文档库映射成本地可访问的网络驱动器,再用ImportExcel读取:
# 映射网络驱动器(需确保账户有权限访问目标站点) New-PSDrive -Name "S" -PSProvider FileSystem -Root "\\organisation.sharepoint.com@SSL\DavWWWRoot\sites\Deliveries-Team Name\Shared Documents" # 读取Excel文件 $path = "S:\Spreadsheet name.xlsx" $Workplace = Import-Excel $path -WorksheetName "worksheet" # 用完后可移除驱动器(可选) Remove-PSDrive -Name "S"
方法2:先下载文件到本地临时目录
通过下载文件到本地,再用ImportExcel读取,适合大多数场景:
用Invoke-WebRequest(需处理身份验证)
$localPath = "C:\Temp\Spreadsheet name.xlsx" $sharePointUrl = "https://organisation.sharepoint.com/sites/Deliveries-Team Name/Shared Documents/Spreadsheet name.xlsx" # M365环境建议使用存储的凭据或非交互式验证 Invoke-WebRequest -Uri $sharePointUrl -OutFile $localPath -Credential (Get-Credential) # 读取本地文件 $Workplace = Import-Excel $localPath -WorksheetName "worksheet" # 清理临时文件(可选) Remove-Item $localPath
用PnP PowerShell模块(适配M365环境)
# 首次运行需安装模块:Install-Module -Name PnP.PowerShell -Force # 连接到SharePoint站点(交互式验证,任务计划中需改用非交互式方式) Connect-PnPOnline -Url "https://organisation.sharepoint.com/sites/Deliveries-Team Name" -Interactive # 下载文件到本地临时目录 Get-PnPFile -Url "/sites/Deliveries-Team Name/Shared Documents/Spreadsheet name.xlsx" -Path "C:\Temp" -FileName "Spreadsheet name.xlsx" -AsFile # 读取文件 $Workplace = Import-Excel "C:\Temp\Spreadsheet name.xlsx" -WorksheetName "worksheet" # 清理临时文件 Remove-Item "C:\Temp\Spreadsheet name.xlsx"
方法3:通过PnP直接获取Excel内容(无需下载)
如果不想生成本地文件,可以用PnP模块直接提取表格数据:
Connect-PnPOnline -Url "https://organisation.sharepoint.com/sites/Deliveries-Team Name" -Interactive # 直接获取指定工作表的内容,返回为对象数组 $Workplace = Get-PnPListItem -List "Shared Documents" -Query "<View><Query><Where><Eq><FieldRef Name='FileLeafRef'/><Value Type='Text'>Spreadsheet name.xlsx</Value></Eq></Where></Query></View>" | Get-PnPExcelListItem -WorksheetName "worksheet"
注意:任务计划程序中运行时,需确保执行账户拥有SharePoint站点和文件的访问权限,且身份验证方式需改为非交互式(比如存储凭据或应用程序权限),避免弹出交互窗口导致任务失败。
内容的提问来源于stack exchange,提问作者Mr H
相关产品推荐
相关产品推荐

