Problemas con script Excel2016
Publicado por Aitor (2 intervenciones) el 10/04/2018 08:50:14
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:
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:
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!
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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!
Valora esta pregunta
0