我有一個腳本,可以從Yahoo 下載CSV文件excel無法轉(zhuǎn)換文件,我的目標(biāo)是將其轉(zhuǎn)換為Excel文件(.xlsx)。腳本是:
$path = "D:" $client = New-Object System.Net.WebClient $url = "http://download.finance.yahoo.com/d/quotes.csv?s=EDV,VEA,VWO,VHT,BND,VTI&f=sl1d1t1c1ohgv&e=.csv" $csv_filename = Join-Path $path "prices.csv" $client.DownloadFile($url, $csv_filename)$xl_filename = Join-Path $path "prices.xlsx" $xl = New-Object -COM "Excel.Application" $xl.Visible = $true $wb = $xl.Workbooks.OpenText($csv_filename)
$wb.SaveAs($xl_filename, 51) $wb.Close() $xl.Quit() [System.Runtime.Interopservices.Marshal]::ReleaseComObject($xl)
該腳本位于“ D:\ .ps1”中,我使用
C:\ \ \ \ v1.0 \ .exe -不受限制-文件D:\ .ps1
當(dāng)我運行它時excel無法轉(zhuǎn)換文件,出現(xiàn)兩個錯誤:
You cannot call a method on a null-valued expression. At D:\get_prices.ps1:14 char:11 + $wb.SaveAs <<<< ($xl_filename, 51)+ CategoryInfo : InvalidOperation: (SaveAs:String) [], RuntimeExc eption + FullyQualifiedErrorId : InvokeMethodOnNull You cannot call a method on a null-valued expression. At D:\get_prices.ps1:15 char:10
+ $wb.Close <<<< () + CategoryInfo : InvalidOperation: (Close:String) [], RuntimeExce ption + FullyQualifiedErrorId : InvokeMethodOnNull
轉(zhuǎn)換代碼是根據(jù)以下問題解答改編而成的(如何使用將CSV導(dǎo)出到Excel)。
我看著的文件.而據(jù)我nkow林正確使用它,以及文件格式(的51說法)是正確的太基于此。我還查看了.Close的文檔,而且看起來也都正確。
我get-host在 7 x64上使用 v2.0(根據(jù))和Excel 2013。
我究竟做錯了什么?