20 sept 2011

Solución 7 - Problemas de Idioma (CultureInfo) en DCOM Excel

Puede darse el caso que cuando uno esta desarrollando con la API de Excel (Office) tenga instalada la versión en español (en mi caso, Office 2007 español) y luego se tenga en el servidor de producción la versión en inglés (en mi caso, Office 2007 inglés).
Esto pueda acarrear una serie de errores y excepciones genéricos bastante difíciles de interpretar. La solución es poner dos funciones: al principio y final del uso de la API . Estas funciones asignan de forma temporal el CultureInfo que corresponda al idioma del Office de producción:


void SetNewCurrentCulture()
{
    oldCI = System.Threading.Thread.CurrentThread.CurrentCulture;
    System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
}
void ResetCurrentCulture()
{
    System.Threading.Thread.CurrentThread.CurrentCulture = oldCI;
}


Los errores pueden ser desde "Invalid DateTime" hasta de funciones propias de la API de Excel.

No hay comentarios: