Condividi tramite


Formattazione di dati in Excel con varie impostazioni internazionali

Tutti i dati con formattazione dipendente dalle impostazioni locali, ad esempio le date e la valuta, devono essere formattati utilizzando il formato dati inglese (Stati Uniti) con ID delle impostazioni locali 1033 prima di essere passati a Microsoft Office Excel o prima che vengano letti i dati dal codice del progetto di Office.

Si applica a: le informazioni fornite in questo argomento sono valide per i progetti a livello di documento e di applicazione per Excel 2007 ed Excel 2010. Per ulteriori informazioni, vedere Funzionalità disponibili in base ai tipi di progetto e applicazioni di Office.

Per impostazione predefinita, quando si sviluppa una soluzione Office in Visual Studio, si prevede la formattazione dei dati secondo l'ID delle impostazioni locali 1033 da parte del modello a oggetti di Excel (tale operazione viene anche definita blocco del modello a oggetti sull'ID delle impostazioni locali 1033). Questo comportamento corrisponde alla modalità di funzionaento di Visual Basic, Applications Edition. Tuttavia, questo comportamento può essere modificato nelle soluzioni Office.

Informazioni sulla previsione dell'ID delle impostazioni locali 1033 da parte del modello a oggetti di Excel

Per impostazione predefinita, le impostazioni locali dell'utente finale non hanno effetto sulle soluzioni Office, il cui comportamento rimane sempre quello relativo alle impostazioni locali per la lingua inglese (Stati Uniti). Ad esempio, se si ottiene o si imposta la proprietà Value2 in Excel, i dati devono essere formattati nel modo previsto dall'ID delle impostazioni locali 1033. Se si utilizza un formato dati diverso, è possibile che si ottengano risultati imprevisti.

Anche se si utilizza il formato inglese (Stati Uniti) per i dati passati o modificati da codice gestito, in Excel i dati vengono interpretati e visualizzati correttamente in base alle impostazioni locali dell'utente finale. In Excel i dati vengono formattati in maniera corretta perché il codice gestito passa l'LCID 1033 insieme ai dati, a indicare che i dati sono nel formato inglese (Stati Uniti) e pertanto devono essere riformattati in modo da corrispondere alle impostazioni locali dell'utente.

Ad esempio, se gli utenti finali dispongono delle opzioni regionali impostate sulle impostazioni locali per la lingua tedesca (Germania), si prevede che la data 29 giugno 2005 sia formattata come segue: 29.06.2005. Tuttavia, se la soluzione passa la data a Excel sotto forma di stringa, è necessario formattare la data in base al formato inglese (Stati Uniti): 6/29/2005. Se la cella viene formattata come una cella di data, Excel visualizzerà la data nel formato della lingua tedesca (Germania).

Trasmissione degli altri ID delle impostazioni locali al modello a oggetti di Excel

Nei progetti che hanno .NET Framework 4 come destinazione, il Common Language Runtime (CLR) passa automaticamente l'ID delle impostazioni locali 1033 a tutti i metodi e le proprietà nel modello a oggetti di Excel che accettano dati sensibili alle impostazioni locali. Non è possibile modificare automaticamente questo comportamento per tutte le chiamate nel modello a oggetti. Tuttavia, è possibile passare un ID delle impostazioni locali diverso a un metodo specifico utilizzando InvokeMember per chiamare il metodo e passando l'ID delle impostazioni locali al parametro culture del metodo.

Nei progetti che hanno .NET Framework 3.5 come destinazione, Runtime di Visual Studio Tools per Office passa per impostazione predefinita l'ID delle impostazioni locali 1033 al modello a oggetti di Excel. È possibile tuttavia modificare questo comportamento utilizzando Microsoft.Office.Tools.Excel.ExcelLocale1033Attribute.

Modifica di progetti .NET Framework 3.5 in modo che utilizzino le impostazioni locali del computer dell'utente finale

È possibile sbloccare il comportamento dell'ID delle impostazioni locali per l'intero modello a oggetti di Excel nei progetti di Office che hanno .NET Framework 3.5 come destinazione. Microsoft.Office.Tools.Excel.ExcelLocale1033Attribute controlla il comportamento del modello a oggetti di Excel in questi progetti. Per impostazione predefinita, l'attributo è impostato su true e pertanto il modello a oggetti di Excel viene bloccato in modo da prevedere la formattazione con l'ID delle impostazioni locali 1033. Quando questo attributo è true, Visual Studio consente di eseguire il wrapping di ogni oggetto di Excel per cui vengono create delle istanze dalla soluzione in un oggetto proxy che passa sempre l'ID delle impostazioni locali 1033 a Excel. Quando si imposta l'attributo su false, questi oggetti proxy non vengono utilizzati e nel modello a oggetti di Excel vengono adoperate le impostazioni locali dell'utente finale.

Se si sceglie di impostare l'attributo su false, è ancora possibile utilizzare la reflection per imporre a determinate chiamate a proprietà e metodi di Excel di utilizzare il formato dati (ID delle impostazioni locali 1033) della lingua inglese (Stati Uniti). Per ulteriori informazioni, vedere Procedura: specificare stringhe letterali indipendenti dalle impostazioni internazionali in Excel mediante la reflection.

Nota

Se si imposta l'attributo su false e gli utenti finali hanno impostazioni locali diverse dall'inglese (Stati Uniti), la soluzione potrebbe avere un comportamento imprevisto.

Per sbloccare il modello a oggetti, impostare l'oggetto Microsoft.Office.Tools.Excel.ExcelLocale1033Attribute del file AssemblyInfo.vb o AssemblyInfo.cs del progetto su false.

<Assembly: ExcelLocale1033(False)>
[assembly: ExcelLocale1033(false)]

Nota

Quando l'oggetto Microsoft.Office.Tools.Excel.ExcelLocale1033Attribute è true, Runtime di Visual Studio Tools per Office esegue il wrapping di tutti gli oggetti nativi di Excel in un oggetto proxy, pertanto alcune operazioni relative agli oggetti nativi di Excel potranno risultare rallentate. In questi casi sarà possibile migliorare le prestazioni utilizzando il metodo Microsoft.Office.Tools.Excel.ExcelLocale1033Proxy.Unwrap(System.Object) per ottenere l'oggetto di Excel senza il proxy e quindi eseguire l'operazione utilizzando tale oggetto. In tal caso, l'oggetto restituito da Microsoft.Office.Tools.Excel.ExcelLocale1033Proxy.Unwrap(System.Object) utilizza l'ID impostazioni locali del thread corrente anziché l'ID impostazioni locali 1033.

Vedere anche

Attività

Procedura: localizzare soluzioni di Excel

Procedura: specificare stringhe letterali indipendenti dalle impostazioni internazionali in Excel mediante la reflection

Concetti

Estensione di metadati mediante attributi

Cenni preliminari su Visual Studio Tools per Office Runtime

Altre risorse

Progettazione e creazione di soluzioni Office