2017-09-12 84 views
0

我有一個包含約600行的Excel工作表,每行都包含指向某個可下載文件的超鏈接。使用Powershell在Excel中打開超鏈接

#rowMax is the maxinum rows in the excel sheet 
$rowMax = 99 
$StartingColumnValue = 3 
$StartingRowValue = 2 
for ($StartingRowValue; $StartingRowValue -lt $rowMax+1; $StartingRowValue++){ 
    write-host $ExcelWorkSheet.Cells.Item($StartingRowValue,$StartingColumnValue).Text 
} 

到目前爲止,我已經設法顯示超鏈接的名稱,但我想實際「點擊」它們並下載它們。

我該如何做到這一點? 謝謝。

+0

你想下載600項? –

+0

是的,我想下載所有600個文件。 –

+0

你可以使用[我如何使用VBA下載文件(沒有Internet Explorer)]上的代碼](https://stackoverflow.com/questions/17877389/how-do-i-download-a-file-using-vba -without-internet-explorer)並使用一個循環將每個鏈接提供給它。 – ShanayL

回答

0

當你說你得到了「名字」,我想你也得到了鏈接。

如果是這種情況,您可以循環鏈接並使用Web客戶端下載它們。

這裏是一個小例子,提取從URL中的文件名(根據URL格式,您可能需要使用另一個邏輯)

$WC = New-Object System.Net.WebClient 
$url = 'http://ec.ccm2.net/www.commentcamarche.net/download/files/SFDLC_v2.0_bin.zip' 
$Filename = ($url.Split('/') | Select -Last 1)  

$wc.DownloadFile($url,"C:\__TMP\$Filename") 

對於替代方法,來看看這個article

如果你的文件會很大,並希望與進步一些異步方法,看看這個gist

+0

當我將鼠標懸停在Excel工作表的超鏈接上時,彈出一個窗口顯示鏈接(URL)。我如何使用Powershell檢索這個URL? –

+0

我設法找到超鏈接的所有網址,我會嘗試這種方法。 –

+0

謝謝!這個解決方案爲我工作。必須做一點修改,但你的wc.DownloadFile()是我想要的。 –

相關問題