2017-07-20 573 views
0

我正在运行以下PowerShell以尝试下载Excel的xlsx格式的电子表格表单SharePoint。PowerShell WebClient下载损坏的文件

$ExcelFileLocal = 'C:\Temp\Test.xlsx' 
$ExcelFileRemote = '<long https url to Excel file taken from SharePoint using Copy Shortcut command>' 
$credentials = Get-Credential -UserName $strName 
$webclient = New-Object System.Net.WebClient 
$webclient.Credentials = $credentials 
$webclient.DownloadFile($ExcelFileRemote, $ExcelFileLocal) 

当试图打开与Excel或在PowerShell中给出以下错误一个新的COM对象的文件:

Excel无法打开文件“Test.xlsx”,因为文件格式或文件 扩展名无效。验证文件是否已损坏 并且文件扩展名与文件的格式相匹配。

如果使用.txt文件而不是Excel文件进​​行测试,打开结果文件没有问题。

此处列出的答案:Opening an Excel document from SharePoint using PowerShell给出了与显示的相同的错误。

编辑:

我想下载的文件,并做进一步的工作似乎是XML,并且可以在一个文本编辑器打开,显示这头:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns:o="urn:schemas-microsoft-com:office:office" lang="en-us" dir="ltr"> 
<head><meta http-equiv="X-UA-Compatible" content="IE=8" /><meta name="GENERATOR" content="Microsoft SharePoint" /><meta name="progid" content="SharePoint.WebPartPage.Document" /><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta http-equiv="Expires" content="0" /><title> 

一种更简单的.xlsx我已经成功测试过的文件没有这种XML格式,可以进一步处理。不知道为什么会出现这种差异。

+0

您是否尝试过在记事本中打开下载的文件或其他什么来查看它的内容是什么?文件大小是你期望的吗? –

+0

@DavidBrabant - 文件大小大约在80Kb左右(预计大约20KB)。该方法适用于不同的测试xlsx文件,所以似乎我的目标是xlsx文件有问题。目标文件可以通过SharePoint >> Edit在Excel中打开查找 – dross

回答

0

长URL是错误的 - 正确现在按预期工作。