我有一个包含 10k 多行的 Excel 电子表格,每列都有一个 DisplayName 设置为“下载”的链接,链接中的实际 URL 是一个独特的小型 PDF。 我正在尝试遍历 XLSX 文档中的每一行来下载 PDF。 但是,我无法让 Powershell 提取实际的 URL。 相反,它始终提取链接的 DisplayName。 我最终会使用 Invoke-WebRequest 来下载文件,但我什至无法做到这一点。
Import-Module ImportExcel
$filePath = ".\working.xlsx"
$excelData = Import-Excel -Path $filePath
$linkColumn = "PDFLink"
$links = $excelData | Select-Object -Property Path -ExpandProperty $linkColumn
$links
超链接对象同时具有显示名称和链接。您可以像下面这样提取它。
我还添加了代码将其下载到下载文件夹
Import-Module ImportExcel
$filePath = ".\working.xlsx"
$destinationFolder = ".\Downloads"
if (-not (Test-Path -Path $destinationFolder)) {
New-Item -ItemType Directory -Path $destinationFolder
}
$excelData = Import-Excel -Path $filePath
$linkColumn = "PDFLink"
$excelData | ForEach-Object {
$url = $_.$linkColumn.Address
if ($url) {
$fileName = [System.IO.Path]::GetFileName($url)
$destinationPath = Join-Path -Path $destinationFolder -ChildPath $fileName
try {
Invoke-WebRequest -Uri $url -OutFile $destinationPath
Write-Host "Downloaded: $url to $destinationPath"
} catch {
Write-Host "Failed to download $url. Error: $_"
}
}
}