Compartir a través de


Globalización y localización de las soluciones de Excel

Esta sección contiene información sobre consideraciones especiales para las soluciones de Microsoft Office Excel que se vayan a ejecutar en equipos que tengan una configuración distinta del inglés para Windows.La mayoría de los aspectos relacionados con la globalización y la localización de las soluciones de Microsoft Office coinciden con los que se pueden encontrar cuando se crean otros tipos de soluciones con Visual Studio.Para obtener información general, vea Globalizar y localizar aplicaciones.También encontrará información de globalización y localización en la página web de MSDN Globalization and Localization Issues for Solutions Created with Microsoft Visual Studio Tools for the Microsoft Office System.

De forma predeterminada, los controles host en Microsoft Office Excel funcionan correctamente con cualquier configuración regional de Windows, siempre que todos los datos que se pasen o se manipulen utilizando código administrado tengan formato correspondiente a Inglés (Estados Unidos).En proyectos destinados .NET Framework 4 o .NET Framework 4.5, este comportamiento se controla por Common Language Runtime (CLR).

Se aplica a: La información de este tema se aplica a los proyectos de nivel de documento y los proyectos de nivel de aplicación para Excel 2013 y Excel 2010. Para obtener más información, vea Características disponibles por aplicación y tipo de proyecto de Office.

Datos de formato en Excel con la configuración regional de Distintos

Debe dar formato a todos los datos con formato sensible a la configuración regional, como fechas y divisa, mediante el formato de datos Inglés (Estados Unidos) (identificador de configuración regional 1033) antes de pasarlos a Microsoft Office Excel o bien leer los datos del código de proyecto de Office.

De forma predeterminada, al desarrollar una solución de Office en Visual Studio, el modelo de objetos de Excel espera el formato de datos correspondiente al identificador de configuración regional 1033 (lo que también se conoce como bloquear el modelo de objetos en el identificador de configuración regional 1033).Este comportamiento coincide con la manera en que funciona Visual Basic para Aplicaciones.Sin embargo, puede modificar este comportamiento en las soluciones de Office.

Bb157877.collapse_all(es-es,VS.110).gifDescripción de cómo el modelo de objetos de Excel siempre espera el identificador de configuración regional 1033

De forma predeterminada, la configuración regional del usuario final no tiene ningún efecto sobre las soluciones de Office creadas mediante Visual Studio, que siempre se comportan como si la configuración regional fuera Inglés (Estados Unidos).Por ejemplo, si obtiene o establece la propiedad Value2 en Excel, se debe dar formato a los datos como espera el identificador de configuración regional 1033.Si utiliza un formato de datos diferente, podría obtener resultados inesperados.

Aun cuando se utilice el formato de inglés (Estados Unidos) para los datos que se pasan o manipulan mediante código administrado, Excel interpreta y muestra los datos correctamente según la configuración regional del usuario final.Excel puede dar formato a los datos correctamente porque el código administrado pasa el identificador de configuración regional 1033 junto con los datos, lo que indica que el formato de los datos es inglés (Estados Unidos) y, por lo tanto, el formato se debe cambiar para que coincida con la configuración regional del usuario.

Por ejemplo, si los usuarios finales tienen la configuración regional establecida en Alemán (Alemania), esperan que la fecha 29 de junio de 2005 tenga el siguiente formato: 29.06.2005.Sin embargo, si la solución pasa la fecha a Excel como cadena, se debe dar formato a la fecha según el formato Inglés (Estados Unidos): 6/29/2005.Si se da formato a la celda como una celda de fecha, Excel mostrará la fecha en el formato correspondiente a la configuración regional Alemán (Alemania).

Bb157877.collapse_all(es-es,VS.110).gifPasar otros identificadores de configuración regional al modelo de objetos de Excel

Common Language Runtime (CLR) pasa automáticamente el identificador de configuración regional 1033 a todos los métodos y propiedades del modelo de objetos de Excel que aceptan datos sensibles a la configuración regional.No hay ninguna manera de cambiar este comportamiento automáticamente para todas las llamadas en el modelo de objetos.Sin embargo, se puede pasar un identificador de configuración regional diferente a un método concreto si se usa InvokeMember para llamar al método y se pasa el identificador de configuración regional al parámetro culture del método.

Localizar texto de documentos

Es probable que el documento, la plantilla o el libro del proyecto incluyan texto estático, que se debe localizar independientemente del ensamblado y de otros recursos administrados.Una forma sencilla de abordar esta cuestión consiste en realizar una copia del documento y traducir el texto con Microsoft Office Word o con Microsoft Office Excel.Este proceso funciona aunque no se efectúen cambios en el código, porque no hay límite para el número de documentos que pueden vincular al mismo ensamblado.

No obstante, conviene asegurarse de que las partes del código que interactúen con el texto del documento se ajusten al idioma del texto, y que los marcadores, los rangos con nombre y demás campos de visualización se adapten al nuevo formato del documento de Office necesario para ajustarse a las diferencias de gramática y de longitud del texto.Para plantillas de documento que contienen relativamente poco texto, podría almacenar el texto en archivos de recursos y cargarlo después en tiempo de ejecución.

Bb157877.collapse_all(es-es,VS.110).gifDirección del texto

En Excel, puede establecer una propiedad de hoja de cálculo para representar el texto de derecha a izquierda.Los controles de host o cualquier control con una propiedad RightToLeft que se coloquen en el diseñador responden automáticamente a esta configuración en tiempo de ejecución.Word no tiene una configuración de documento para el texto bidireccional (simplemente, se cambia la alineación del texto), por lo que los controles no se pueden asignar a esta configuración.En lugar de eso, debe establecerse la alineación del texto para cada control.Es posible escribir código para recorrer todos los controles y hacer que representen el texto de derecha a izquierda.

Bb157877.collapse_all(es-es,VS.110).gifCambiar la referencia cultural

El código de personalización de nivel de documento comparte normalmente el subproceso principal de la interfaz de usuario de Excel, de modo que los cambios que realice en la referencia cultural del subproceso afectan todo lo demás que se esté ejecutando en el subproceso; el cambio no se limita a la personalización.

Los controles de Windows Forms se inicializan antes de que la aplicación host inicie los complementos de nivel de aplicación.En estas situaciones, la referencia cultural se debe cambiar antes de establecer los controles de la interfaz de usuario.

Instalar paquetes de idioma

Si usa una configuración para Windows que no corresponde al inglés, puede instalar los paquetes de idioma de Runtime de Microsoft Visual Studio Tools para Office para ver los mensajes en tiempo de ejecución de Runtime de Microsoft Visual Studio Tools para Office en el mismo idioma que en Windows.Si algún usuario final ejecuta soluciones con los valores de no inglés para Windows, debe disponer del paquete de idioma correcto para ver los mensajes en tiempo de ejecución en el mismo idioma que en Windows. Los paquetes de idioma de Runtime de Microsoft Visual Studio Tools para Office están disponibles de Centro de descarga de Microsoft.

Además, los paquetes de idioma redistribuibles de Microsoft .NET Framework son necesarios para los mensajes de ClickOnce.Los paquetes de idioma de .NET Framework están disponibles en el Centro de descarga de Microsoft.

Configuración regional y llamadas COM de Excel

Cuando un cliente administrado llama a un método en un objeto COM y necesita pasar información específica de la referencia cultural, lo hace mediante CurrentCulture (configuración regional) que coincide con la configuración regional del subproceso actual.La configuración regional del subproceso actual se hereda de manera predeterminada de la configuración regional del usuario.Sin embargo, al realizar una llamada en el modelo de objetos de Excel desde una solución de Excel creada con las herramientas de desarrollo de Office en Visual Studio, el formato de datos de Inglés (Estados Unidos) (identificador de configuración regional 1033) se pasa automáticamente al modelo de objetos de Excel.Debe dar formato a todos los datos con formato sensible a la configuración regional, como fechas y divisa, con el formato de datos Inglés (Estados Unidos) antes de pasarlos a Microsoft Office Excel, o bien leer los datos del código del proyecto.

Consideraciones para almacenar datos

Para asegurarse de que los datos se interpretan y se presentan correctamente, también debe considerar que pueden producirse problemas cuando una aplicación almacena datos, como las fórmulas de la hoja de cálculo de Excel, en literales de cadena (codificadas de forma rígida) en lugar de objetos fuertemente tipados.Debe usar datos con un formato en el que se suponga una referencia cultural de todos los idiomas o Inglés (Estados Unidos) (valor de LCID 1033).

Bb157877.collapse_all(es-es,VS.110).gifAplicaciones que utilizan literales de cadena

Entre los valores que podrían estar especificados en el código se encuentran los literales de fecha escritos en formato inglés (Estados Unidos) y fórmulas de hoja de cálculo de Excel que contengan nombres de función traducidos.Otra posibilidad podría ser una cadena especificada en el código que contenga un número como "1,000"; en algunas referencias culturales, se interpreta uno coma cero, pero en otras referencias culturales representa el número mil.Los cálculos y las comparaciones realizados en un formato que no corresponda podrían dar como resultado datos incorrectos.

Excel interpreta cualquier cadena de acuerdo con el LCID que se pasa con la cadena.Esto puede suponer un problema si el formato de la cadena no corresponde al LCID que se pasa.Las soluciones de Excel creadas con las herramientas de desarrollo de Office en Visual Studio usan el LCID 1033 (en-US) al pasar todos los datos.Excel muestra los datos según la configuración regional y el idioma de la interfaz de usuario de Excel.Visual Basic para Aplicaciones (VBA) también funciona de esta manera; a las cadenas se les aplica el formato en-US y VBA pasa casi siempre 0 (independiente del idioma) como LCID.Por ejemplo, con el siguiente código de VBA se muestra un valor con formato correcto para la fecha 12 de mayo de 2004, de acuerdo con la configuración regional del usuario actual:

'VBA
Application.ActiveCell.Value2 = "05/12/04"

El mismo código, cuando se usa en una solución creada con las herramientas de desarrollo de Office en Visual Studio y se pasa a Excel a través de la interoperabilidad COM, genera los mismos resultados si se da formato a la fecha con el estilo de en-US.

Por ejemplo:

Me.Range("A1").Value2 = "05/12/04"
this.Range["A1"].Value2 = "05/12/04";

Siempre que sea posible, debe trabajar con datos fuertemente tipados, en lugar de hacerlo con literales de cadena.Por ejemplo, en lugar de almacenar una fecha en un literal de cadena, almacénelo como un Double y, a continuación, conviértalo en un objeto DateTime para la manipulación.

En el siguiente ejemplo de código, se toma una fecha que escribe un usuario en la celda A5, se almacena como un Double y, a continuación, se convierte en un objeto DateTime para que se muestre en la celda A7.Se debe dar formato a la celda A7 para que muestre una fecha.

Private Sub ConvertDate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles ConvertDate.Click

    Try
        Dim dbl As Double = Me.Range("A5").Value2
        Dim dt As System.DateTime = System.DateTime.FromOADate(dbl)
        Me.Range("A7").Value2 = dt

    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
End Sub
private void ConvertDate_Click(object sender, EventArgs e)
{
    try
    {
        double dbl = (double)(this.Range["A5"].Value2);
        System.DateTime dt = System.DateTime.FromOADate(dbl);
        this.Range["A7"].Value2 = dt;
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

Bb157877.collapse_all(es-es,VS.110).gifFunciones de hoja de cálculo de Excel

Los nombres de función de las hojas de cálculo se traducen internamente para la mayoría de las versiones de lenguaje de Excel.Sin embargo, debido a los posibles problemas de idioma y de interoperabilidad COM, se recomienda encarecidamente utilizar sólo nombres de función en inglés en el código.

Bb157877.collapse_all(es-es,VS.110).gifAplicaciones que utilizan datos externos

También se podría ver afectado cualquier código que abra o utilice de algún modo datos externos, como archivos que incluyan valores separados por comas (archivos CSV) exportados de un sistema heredado, si tales archivos se exportan con cualquier formato distinto de en-US.No podría verse afectado el acceso a la base de datos porque todos los valores tendrían que estar en formato binario, a menos que la base de datos almacenase las fechas como cadenas o realizase operaciones en las que no se utilice el formato binario.Por otra parte, si crea consultas SQL con datos de Excel, quizá debería asegurarse de que están en formato en-US, según la función que utilice.

Vea también

Tareas

Cómo: Apuntar a MUI (Multilingual User Interface, Interfaz de usuario multilingüe) de Office

Conceptos

Parámetros opcionales en las soluciones de Office

Otros recursos

Diseñar y crear soluciones de Office