Globalização e localização de soluções do Excel

Esta seção contém informações sobre considerações especiais para soluções do Microsoft Office Excel que serão executadas em computadores que têm configurações não inglês para o Windows.A maioria dos aspectos de globalização e localização de soluções do Office são os mesmos você encontrar quando você cria outros tipos de soluções usando Visual Studio.Para informações gerais, consulte Globalizando e Localizando aplicativos.Informações de globalização e localização pode também ser encontradas no Problemas de globalização e localização para soluções criadas com as ferramentas do Microsoft Visual Studio para o Microsoft Office systemde página da Web do MSDN.

Por padrão, controles host no trabalho do Microsoft Office Excel corretamente em qualquer configuração regional do Windows, como todos os dados que são passados ou manipulados usando código gerenciado é formatado usando formatação (inglês dos EUA).Em projetos que destinam-se .NET Framework 4 ou .NET Framework 4.5, esse comportamento é controlado pelo tempo de execução (CLR) language runtime.

Aplicável a: As informações neste tópico se aplicam a projetos de nível de documento e projetos de nível de aplicativo para Excel 2013 e Excel 2010. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.

Dados de formatação do excel com várias configurações regionais

Você deve formatar os dados que têm formatação são confidenciais, como datas e moeda, usando o formato de dados (inglês dos EUA) (ID local 1033) antes do passe para o Microsoft Office Excel ou ler os dados do código no seu projeto do Office.

Por padrão, quando você desenvolver uma solução do Office no Visual Studio, o modelo de objeto do excel espera formatação de dados de ID local 1033 (isso também é chamado bloquear o modelo de objeto à ID local 1033).Esse comportamento corresponde a maneira que o Visual Basic é Applications funciona.No entanto, você pode alterar esse comportamento em suas soluções do Office.

Bb157877.collapse_all(pt-br,VS.110).gifCompreendendo como o modelo de objeto do excel espera sempre o ID local 1033

Por padrão, as soluções do Office que você cria usando Visual Studio não são afetados por configurações de localidade do usuário final, e sempre se comportam como se a localidade é inglês (Estados Unidos).Por exemplo, se você obtém ou define a propriedade de Value2 o excel, os dados devem ser formatado a maneira que a ID local 1033 espera.Se você usar um formato de dados diferente, você pode obter resultados inesperados.

Mesmo que você use o formato (inglês dos EUA) para dados que são passados ou manipulados pelo código gerenciado, interpreta o excel e exibe os dados corretamente de acordo com as configurações de localidade do usuário final.O excel pode formatar os dados corretamente como código gerenciado passa a ID local 1033 juntamente com os dados, que indicam que os dados estão no formato (inglês dos EUA) e consequentemente devem ser reformatados para corresponder à configuração de localidade do usuário.

Por exemplo, se os usuários finais tem suas opções regionais definidas para a localidade (alemão de Alemanha), esperam data o 29 de junho de 2005 ser formatado essa maneira: 29.06.2005.No entanto, se sua solução passa a data do excel como uma cadeia de caracteres, você deve formatar a data de acordo com o formato em inglês (Estados Unidos): 6/29/2005.Se a célula é formatada como uma célula de data, o excel irão exibir a data no formato de alemão (EUA).

Bb157877.collapse_all(pt-br,VS.110).gifPassando outras identificações de localidade para o modelo de objeto do excel

O tempo de execução (CLR) language runtime automaticamente passa a ID local 1033 para todos os métodos e propriedades no modelo de objeto do excel que aceitam dados são confidenciais.Não há nenhuma maneira para automaticamente alterar esse comportamento para todas as chamadas no modelo de objeto.No entanto, você pode passar uma ID local diferente para um método específico usando InvokeMember para chamar o método e passando a ID local para o parâmetro de culture do método.

Localizando texto do documento

O documento, o modelo, ou pasta de trabalho em seu projeto incluem provavelmente texto estático, que deve ser encontrado separada do assembly e outros recursos gerenciados.Uma maneira simples de fazer isso é fazer uma cópia do documento e traduzir o texto usando o Microsoft Office Word e Microsoft Office Excel.Trabalhos deste processo mesmo se você não faz nenhuma alteração no código, porque qualquer número de documentos pode ser associado ao mesmo assembly.

Você ainda deve certificar-se de que qualquer parte do seu código que interagem com o texto do documento continua a corresponder ao idioma de texto, e a marca de um endereço da Internet, os intervalos nomeados, e outros campos de exibição acomodam qualquer reformatar o documento do Office que foi necessário para ajustar para a gramática e o comprimento diferentes de texto.Para os modelos de documento que contêm relativamente vez de texto, convém considerar armazenar texto em arquivos de recurso e em seguida, carregue o texto em tempo de execução.

Bb157877.collapse_all(pt-br,VS.110).gifDireção de texto

O excel, você pode definir uma propriedade de planilha para processar da direita para a esquerda o texto.Hospedar controles, ou qualquer controle que tenha uma propriedade de RightToLeft , que é colocado na correspondência de designer automaticamente essas configurações em tempo de execução.Word não tem uma configuração de documento para o texto bidirecional (você alterar apenas o alinhamento de texto), então os controles não podem ser mapeados para essa configuração.Em vez disso, você deve configurar o alinhamento de texto para cada controle.É possível escrever código para percorrer de todos os controles e forçá-los para processar da direita para a esquerda o texto.

Bb157877.collapse_all(pt-br,VS.110).gifAlterando a cultura

O código de personalização de um documento nível compartilha normalmente o segmento principal de interface de usuário do excel, para que as alterações feitas às afeta de cultura de segmento tudo outro que está executando naquele segmento; a alteração não é restrita a sua personalização.

Os controles de formulários do Windows são inicializados antes de suplementos nível de aplicativo é iniciado pelo aplicativo host.Nessas situações, a cultura deve ser alterada antes de definir os controles de interface do usuário.

Instalando os blocos de linguagem

Se você tiver configurações não inglês para o Windows, você pode instalar os blocos de linguagem de Visual Studio Tools for Office Runtime para ver mensagens de Visual Studio Tools for Office Runtime no mesmo idioma do Windows.Se qualquer usuário final executa suas soluções com configurações não inglês para o Windows, deve ter o bloco correto da linguagem para ver mensagens de tempo de execução no mesmo idioma do Windows. Blocos de linguagem de Visual Studio Tools for Office Runtime estão disponíveis Microsoft Download Centerno.

Além disso, os blocos redistribuíveis de linguagem.NET Framework são necessários para mensagens de ClickOnce.Blocos de linguagem.NET Framework estão disponíveis Microsoft Download Centerno.

Configurações regionais e chamadas COM o excel

Sempre que um cliente gerenciado chama um método em um objeto COM e precisa passar informações na cultura específica, faz isso usando CurrentCulture (local) que corresponde à localidade atual da thread.A localidade de segmento atual é herdada de configurações regionais de usuário por padrão.No entanto, quando você faz uma chamada no modelo de objeto do excel de uma solução do excel criada usando as ferramentas de desenvolvimento do Office no Visual Studio, o formato de dados (inglês dos EUA) (ID local 1033) é passado para o modelo de objeto do excel automaticamente.Você deve formatar os dados que têm formatação são confidenciais, como datas e moeda, usando o formato de dados (inglês dos EUA) antes do passe para o Microsoft Office Excel ou ler os dados do seu código de projeto.

Considerações para armazenar dados

Para garantir que os dados sejam interpretados e exibidos corretamente, você também deve considerar os problemas que podem ocorrer quando um aplicativo estiver armazenando dados, como fórmulas a planilha do excel, em literais de cadeia de caracteres embutida () em vez em objetos fortemente tipados.Você deve usar os dados que são formatados que assumem um cultura invariável ou inglês (Estados Unidos) (o valor 1033 de estilo LCID).

Bb157877.collapse_all(pt-br,VS.110).gifAplicativos que usam literais de cadeia de caracteres

Os possíveis valores que podem ser definidas no código incluem as fórmulas literais de data que são gravados no formato (inglês dos EUA), e a planilha do excel que contém nomes de função localizados.Outra possibilidade pode ser uma cadeia de caracteres embutida em código que contém um número como “1.000 "; em algumas culturas, isso é interpretado como milhar, mas em outras culturas, ele representa um ponto zero.Os cálculos e as comparações executados no formato incorreto pode levar a dados incorretos.

O excel interpreta as cadeias de caracteres de acordo com um LCID que é passado com a cadeia de caracteres.Isso pode ser um problema se o formato de cadeia de caracteres não corresponde a um LCID que é passada.As soluções do excel criadas usando as ferramentas de desenvolvimento do Office no Visual Studio usam um LCID 1033 (en-us. E EUA.) para passar os dados.O excel exibe os dados de acordo com as configurações e o idioma da UI regionais do excel.Visual Basic é Applications () VBA também funciona essa maneira; as cadeias de caracteres são formatadas como en-us os EUA. E. e VBA passam quase sempre 0 (ponto de idioma neutro como um LCID).Por exemplo, o seguinte código de VBA exibe um valor corretamente- formatado para o 12 de maio de 2004, de acordo com as configurações de localidade do usuário atual:

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

O mesmo código, quando usado em uma solução criada usando as ferramentas de desenvolvimento do Office no Visual Studio e passada do excel através de interoperabilidade COM, gera os mesmos resultados quando a data é formatada no estilo E en-us. EUA.

Por exemplo:

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

Você deve trabalhar com dados fortemente tipados em vez de literais de cadeia de caracteres sempre que possível.Por exemplo, em vez de armazenar uma data em uma cadeia de caracteres literal, armazená-lo como Double, então convertê-lo para um objeto de DateTime para tratamento.

O exemplo de código a seguir usa uma data que um usuário inseriu na célula A5, armazená-las como Double, então ele converte a um objeto de DateTime para exibição na célula A7.A célula A7 deve ser formatada para exibir uma data.

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(pt-br,VS.110).gifFunções da planilha do excel

Os nomes de função a planilha são traduzidas internamente para as versões de idioma do excel.No entanto, devido a problemas de interoperabilidade de linguagem e potenciais COM é altamente recomendável que você use somente nomes de função em inglês no seu código.

Bb157877.collapse_all(pt-br,VS.110).gifAplicativos que usam dados externos

Qualquer código que abra ou usar outra maneira de dados externos, como arquivos que incluem os valores separados por vírgulas () CSV arquivos exportados de um sistema herdado, também pode ser afetado se esses arquivos são exportados usando qualquer formato além dos EUA E en-us.Acesso ao banco de dados não pode ser afetado porque todos os valores devem estar no formato binário, a menos que o banco de dados armazena datas como cadeias de caracteres ou esteja executando operações que não usam o formato binário.Além disso, se você constrói consultas SQL usando dados do excel, talvez seja necessário garantir que eles fiquem no formato en-us. E EUA., dependendo da função que você usar.

Consulte também

Tarefas

Como: o Interface do usuário multilíngüe do Office de destino.

Conceitos

Parâmetros opcionais em soluções do Office

Outros recursos

Projetando e criando soluções do Office