需要 Powershell 从 Excel 电子表格中的链接下载 PDF

问题描述 投票:0回答:1

我有一个包含 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
excel powershell hyperlink
1个回答
0
投票

超链接对象同时具有显示名称和链接。您可以像下面这样提取它。

我还添加了代码将其下载到下载文件夹

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: $_"
        }
    }
}

© www.soinside.com 2019 - 2024. All rights reserved.