Buenos dias,
Me he encontrado un problema con un script, el cual espero que me podais ayudar a entender cual es su causa.
El tema es que en un servidor antiguo, con Excel 2010, cree un script para realizar la conversion entre xls y xlsx. El codigo es el siguiente:
Add-Type -AssemblyName Microsoft.Office.Interop.Excel
$xlFixedFormat = [Microsoft.Office.Interop.Excel.XlFileFormat]::xlOpenXMLWorkbook
write-host $xlFixedFormat
$excel = New-Object -ComObject excel.application
$excel.visible = $true
$folderpath = "C:\Users\Public\Documents\Stock In Central"
$filetype ="*xls"
Get-ChildItem -Path $folderpath -Include $filetype -recurse |
ForEach-Object `
{
$path = ($_.fullname).substring(0, ($_.FullName).lastindexOf("."))
"Converting $path"
$workbook = $excel.workbooks.open($_.fullname)
$path += ".xlsx"
$workbook.saveas($path, $xlFixedFormat)
$workbook.close()
}
$excel.Quit()
$excel = $null
[gc]::collect()
[gc]::WaitForPendingFinalizers()
$excel.Close
En el servidor antiguo me funcionaba perfectamente. PEro al realziar una migracion a un nuevo servidor,el cual tiene excel 2016, me da el siguiente error:
Error en la invocación del método porque [System.__ComObject] no contiene ningún método llamado 'saveas'.
En línea: 17 Carácter: 2
+ $workbook.saveas($path, $xlFixedFormat)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (saveas:String) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound
Error en la invocación del método porque [System.__ComObject] no contiene ningún método llamado 'close'.
En línea: 18 Carácter: 2
+ $workbook.close()
+ ~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound
Excepción al llamar a "Quit" con los argumentos "0": "Excepción de HRESULT: 0x800AC472"
En línea: 22 Carácter: 1
+ $excel.Quit()
+ ~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : COMException
A que se puede deber este error? Peude ser que sea derivado a que el office no esta activado? Alguna funcion que ya no exista en al nueva version?
Cualquier pista sera bienvenida,
Muchas gracias!