【问题标题】:PowerShell save file as xls but output was htmlPowerShell 将文件保存为 xls 但输出为 html
【发布时间】:2016-05-30 02:10:08
【问题描述】:

我有一个文件扩展名为 .xls 的文件,但奇怪的是当另存为时,默认是转到 html 文件。

当我使用我的 powershell 脚本对文件执行一些操作并将其保存为 xls 文件时,这导致了一个问题。结果是脚本生成了一个 xls 文件和一个包含 html 文件的文件夹。有没有办法解决这个问题?我只想将文件保存为没有任何 html 文件的 xls 文件。非常感谢任何帮助。

这里是我用来将文件保存为 .xls 的代码

Function RenameTab ($ExcelFileName, $OutLoc)
{
$excelFile = "D:\Projects\" + $excelFileName + ".xls"
$xldoc =  New-Object -ComObject "Excel.Application"
$xldoc.Visible = $false
$xldoc.DisplayAlerts = $false

$workbook = $xldoc.Workbooks.Open($excelFile)
foreach ($worksheet in $workbook.Worksheets)
{
    $n = $ExcelFileName ##+ "_" + $worksheet.Name
    $worksheet = $workbook.worksheets.item(1)
    $worksheet.name = "Sheet1"
    $workbook.SaveAs($OutLoc + $n + ".xlsx")
    $workbook.Close()
}
$xldoc.Quit()
 }

【问题讨论】:

    标签: excel powershell


    【解决方案1】:

    当您调用SaveAs 时,您应该真正指定file format

    根据documentationSaveAs,这将是第二个参数,因此更正的行将是:

    $workbook.SaveAs($OutLoc + $n + ".xlsx", 51) # 51 = xlOpenXMLWorkbook
    

    我在 COM 交互方面没有太多经验,但您也许可以以某种方式直接使用枚举并使行类似于:

    $workbook.SaveAs($OutLoc + $n + ".xlsx", $xldoc.XlFileFormat.xlOpenXMLWorkbook)
    

    【讨论】:

    • 你救了我的命!!谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-24
    • 1970-01-01
    相关资源
    最近更新 更多