PowerShell – Excel 2013: “Old format or invalid type library”

Si al intentar trabajar con scripts en Excel desde PowerShell , nos aparece un mensaje de error de este estilo:

“Old format or invalid type library”

O para ser mas especificos, el siguiente error:

Se puede estar dando por un error en la configuación de la “cultura”.

En mi caso, este error se debió a que mi confiugración de región estaba seteada como es-UY mientras que el idioma del Office estaba en inglés.

Como solución, tenemos el comando Set-Culture que nos permite modificar nuestra configuración en una línea. De la siguiente manera:

Y listo, podemos empezar a ejecutar nuestro código sin problemas.

Si no conocemos cuál es nuestra configuración, tenemos otro comando (todos a partir de la versión 3.0 de PowerShell):

Get-Culture

Espero haber ayudado con esta info.

Saludos,

 

  • oramfer182

    Hola buen dia, soy principiante en el tema de powershell. pero en mi caso en la configuración regional Me aparece Spanish (Mexico) . debo cambiar el Set-Culture a esta configuracion. Ojala puedan orientarme.

    Saludos,

    • Victor Silva

      Hola, en realidad está relacionado con el idioma de Office: en el ejemplo yo contaba con Office en Inglés, mientras que mi configuración de cultura estaba en Español (es-UY). Primero revisa el idioma de Office para luego chequear que configuración de cultura tienes, y ahí evaluar si es necesario cambiar la cultura o no. Espero haberte ayudado. Espero tus comentarios.

      Saludos,

      Victor

      • oramfer182

        Gracias Victor por tu respuesta, en mi caso tambien el office esta en Ingles. Pero me di cuenta que el cmdlet Set-Culture no esta disponible para powershell 4.0. Estoy usando Windows 7 SP1. Voy actualizar mi version de framework a la version 5 y ver si se agrega ese cmdlet. Te aviso como me fue.

        Saludos,

        • oramfer182

          Actualice la version de powershell a la version 5, pero no se agrego el cmdlet Set-Culture alguna otra idea de como corregir este error.

          Saludos,

          • Victor Silva

            Que raro! Porque el cmdlet aparece en la versión 3.0 de PowerShell, te comparto el enlace https://technet.microsoft.com/en-us/library/hh852137.aspx.

            Si ejecutas: $PSVersionTable que versión te devuelve?

          • oramfer182

            Te comparto el resultado:
            Windows PowerShell
            Copyright (C) 2015 Microsoft Corporation. All rights reserved.

            PS C:Usersusername> $PSVersionTable

            Name Value
            —- —–
            PSVersion 5.0.10586.117
            PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
            BuildVersion 10.0.10586.117
            CLRVersion 4.0.30319.42000
            WSManStackVersion 3.0
            PSRemotingProtocolVersion 2.3
            SerializationVersion 1.1.0.1

            Saludos,

          • Victor Silva

            Me alegro que se haya resuelto el problema!

          • oramfer182

            Hola Victor revise ese Link y segun veo que el sistema operativo influye en ese cmdlet (copiado del link):
            Published: March 30, 2012
            Updated: September 15, 2012
            Applies To: Windows 8, Windows Server 2012. Afortunadamente mi script ya funciona. Lo que hice fue ejecutarlo desde el mismo directorio donde se encuentra el archivo a modificar la extension de xls a xlsx. Si quieres puedo compartirlo solo dime donde lo subo.

            Saludos,