【问题标题】:PowerShell WebClient downloads leaves corrupted filePowerShell WebClient 下载会留下损坏的文件
【发布时间】:2018-06-07 22:28:35
【问题描述】:

我正在运行以下 PowerShell 来尝试下载 Excel xlsx 格式的电子表格表单 SharePoint。

$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 格式,可以进一步处理。不知道为什么会出现这种差异。

【问题讨论】:

  • 您是否尝试在记事本或其他任何工具中打开下载的文件以查看其内容?文件大小符合您的预期吗?
  • @DavidBrabant - 文件大小比预期的大 80Kb 左右(预期在 20KB 左右)。该方法适用于不同的测试 xlsx 文件,因此我所针对的 xlsx 文件似乎有问题。可以通过 SharePoint >> 在 Excel 中编辑 打开目标文件

标签: excel powershell


【解决方案1】:

长 URL 错误 - 现在更正按预期工作。

【讨论】:

    猜你喜欢
    • 2019-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-05
    相关资源
    最近更新 更多