Formatação de dados no Excel com várias configurações regionais
Você deve formatar todos os dados que possui formatação de sensíveis à localidade, como, por exemplo, datas e unidades monetárias, usando o formato de dados de inglês (Estados Unidos) (1033 de identificação de localidade) antes de passá-lo para o Excel de Microsoft Office ou ler os dados do código em seu projeto do Office.
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 2007 e Excel 2010. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.
Por padrão, quando você desenvolver uma solução do Office em Visual Studio, o modelo de objeto do Excel espera a formatação de dados de localidade identificação 1033 (Isso também é chamado o bloqueio de modelo de objeto para a localidade identificação 1033). Esse comportamento corresponde a maneira que o Visual Basic for Applications funciona. No entanto, você pode modificar esse comportamento em suas soluções do Office.
A compreensão de como o modelo de objeto do Excel sempre espera a identificação de localidade 1033
Por padrão, as soluções do Office que você criar usando o Visual Studio não são afetadas pelas configurações de localidade do usuário final e sempre se comportam como se o idioma for inglês (Estados Unidos). Por exemplo, se você obtém ou define o Value2 a propriedade no Excel, os dados deve ser formatada da maneira que espera a identificação de localidade 1033. Se você usar um formato de dados diferentes, você poderá obter resultados inesperados.
Embora, por exemplo, você pode usar o formato inglês (Estados Unidos) para dados passados ou manipulados pelo código gerenciado, o Excel interpreta e exibe os dados corretamente de acordo com a configuração de localidade do usuário final. Excel pode formatar os dados corretamente porque o código gerenciado passa o formato de localidade identificação 1033 juntamente com os dados, o que indica que os dados estejam em inglês (Estados Unidos) e, portanto, precisa ser reformatado para corresponder à configuração de localidade do usuário.
Por exemplo, se os usuários finais tenham suas opções regionais de definir a localidade Alemão (Alemanha), esperam que a data de 29 de junho de 2005, a ser formatada assim: 29.06.2005. No entanto, se sua solução passa a data para o Excel como uma seqüência de caracteres, você deve formatar a data de acordo com o formato de inglês (Estados Unidos): 6/29/2005. Se a célula estiver formatada como uma célula de data, o Excel exibirá a data no formato de alemão (Alemanha).
Passando a outras identificações de localidade para o modelo de objeto do Excel
Em projetos destinados a .NET Framework 4, o common language runtime (CLR) passa automaticamente a localidade identificação 1033 para todos os métodos e propriedades do modelo de objeto do Excel que aceitar todos os dados sensíveis à localidade. Não há nenhuma maneira de alterar esse comportamento automaticamente para todas as chamadas para o modelo de objeto. No entanto, você pode passar uma ID de localidade diferentes para um método específico usando InvokeMember para chamar o método e passando a identificação de localidade para o culture parâmetro do método.
Em projetos destinados a.NET Framework 3.5, o Visual Studio Tools for Office runtime passa a localidade identificação 1033 para o modelo de objeto do Excel por padrão. No entanto, você pode modificar esse comportamento usando o Microsoft.Office.Tools.Excel.ExcelLocale1033Attribute.
Modificando.NET Framework 3.5 de projetos para usar as configurações de localidade do computador do usuário final
Você pode desbloquear o comportamento de identificação de localidade para todo o modelo de objeto de Excel no Office projetos destinados a.NET Framework 3.5. O Microsoft.Office.Tools.Excel.ExcelLocale1033Attribute controla o comportamento de modelo de objeto do Excel nesses projetos. Por padrão, o atributo é definido como true, que bloqueia o modelo de objeto do Excel para esperar a formatação da localidade identificação 1033. Quando esse atributo é true, Visual Studio quebra automaticamente a cada objeto do Excel que é instanciado pela solução em um objeto de proxy que sempre passa a identificação 1033 de localidade para o Excel. Quando você definir o atributo false, esses objetos de proxy não são usados, e o modelo de objeto do Excel usa as configurações de localidade do usuário final.
Se você optar por definir o atributo para false, você ainda pode usar a reflexão para forçar a chamadas específicas do Excel propriedades e métodos para usar o formato de dados de inglês (Estados Unidos) (1033 de identificação de localidade). For more information, see Como: Tornar seguras para a região de literais de seqüência de caracteres no Excel usando a reflexão.
Observação |
---|
Se você definir o atributo false e os usuários finais tenham uma configuração de localidade diferente do inglês (Estados Unidos), eles podem ver um comportamento inesperado em sua solução. |
Para desbloquear o modelo de objeto, defina a Microsoft.Office.Tools.Excel.ExcelLocale1033Attribute no arquivo AssemblyInfo. vb ou AssemblyInfo. cs no projeto para false.
<Assembly: ExcelLocale1033(False)>
[assembly: ExcelLocale1033(false)]
Observação |
---|
Porque o Visual Studio Tools for Office runtime encapsula todos os objetos nativos do Excel em um objeto de proxy quando o Microsoft.Office.Tools.Excel.ExcelLocale1033Attribute é true, você poderá notar uma diminuição em algumas operações que envolvem objetos nativos do Excel. Nesses casos, você pode melhorar o desempenho usando o Microsoft.Office.Tools.Excel.ExcelLocale1033Proxy.Unwrap(System.Object) método para obter o objeto do Excel sem o proxy e, em seguida, executar a operação usando o objeto. Se você fizer isso, lembre-se de que o objeto retornado por Microsoft.Office.Tools.Excel.ExcelLocale1033Proxy.Unwrap(System.Object) usa a identificação de localidade do thread atual, a localidade código 1033. |
Consulte também
Tarefas
Como: Localize soluções do Excel
Como: Tornar seguras para a região de literais de seqüência de caracteres no Excel usando a reflexão
Conceitos
Estendendo metadados usando atributos
Visual Studio Tools for Office visão geral sobre o tempo de execução