PowerShell将文件另存为xls,但输出为html

时间:2016-05-29 14:34:53

标签: excel powershell

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

enter image description here

enter image description here

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

The

enter image description here

这里我用来将文件保存为.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()
 }

1 个答案:

答案 0 :(得分:1)

当您致电SaveAs时,您应该真正指定MSDN

根据SaveAs的{​​{3}},它将是第二个参数,因此更正后的行将是:

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

我没有足够的COM交互经验,但您可以直接以某种方式使用枚举,并使该行类似于:

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