Condividi tramite


Globalizzazione e localizzazione di soluzioni di Excel

In questa sezione sono contenute considerazioni speciali per le soluzioni Microsoft Office Excel eseguite in computer che hanno impostazioni di Windows non in inglese.Gli aspetti da considerare per la globalizzazione e la localizzazione di soluzioni Microsoft Office sono gli stessi implicati negli altri tipi di soluzioni create con Visual Studio.Per informazioni di carattere generale, vedere Globalizzazione e localizzazione di applicazioni.Informazioni sulla globalizzazione e sulla localizzazione sono disponibili anche nella pagina Web MSDN Globalization and Localization Issues for Solutions Created with Microsoft Visual Studio Tools for the Microsoft Office System (informazioni in lingua inglese).

Per impostazione predefinita, i controlli host in Microsoft Office Excel funzionano correttamente con tutte le impostazioni regionali di Windows, a condizione che tutti i dati passati o modificati tramite codice gestito vengano formattati utilizzando la formattazione per la lingua inglese (Stati Uniti).Nei progetti destinati a .NET Framework 4 o .NET Framework 4.5, questo comportamento viene controllato da Common Language Runtime (CLR).

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

Dati di formattazione in Excel con le impostazioni internazionali diverse

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.

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.

Bb157877.collapse_all(it-it,VS.110).gifInformazioni 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).

Bb157877.collapse_all(it-it,VS.110).gifTrasmissione degli altri ID delle impostazioni locali al modello a oggetti di Excel

Common Language Runtime (CLR) passa automaticamente l'lcid 1033 a tutti i metodi e le proprietà nel modello a oggetti di Excel che accettano dati sensibili.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.

Localizzazione di documenti di testo

I documenti, i modelli o le cartelle di lavoro contenute in un progetto includono in genere testo statico che deve essere localizzato separatamente dall'assembly e dalle altre risorse gestite.Un metodo diretto per effettuare questa operazione consiste nell'eseguire una copia del documento e tradurre il testo in Microsoft Office Word o Microsoft Office Excel.Questo processo funziona anche se non si apportano modifiche al codice, in quanto è possibile collegare un numero illimitato di documenti allo stesso assembly.

È tuttavia necessario assicurarsi che tutte le parti del codice che interagiscono con il testo del documento continuino a corrispondere alla lingua del testo e che i segnalibri, gli intervalli denominati e gli altri campi visualizzati si adattino alle eventuali riformattazioni del documento di Office necessarie per rispettare le differenze nella grammatica e nella lunghezza del testo.Per i modelli di documenti che contengono testo relativamente breve, è possibile memorizzare il testo in file di risorse per poi caricarlo in fase di esecuzione.

Bb157877.collapse_all(it-it,VS.110).gifOrientamento del testo

In Excel, è possibile impostare una proprietà del foglio di lavoro per il rendering del testo da destra a sinistra.I controlli host e i controlli che dispongono della proprietà RightToLeft posizionati nella finestra di progettazione riflettono automaticamente queste impostazioni in fase di esecuzione.I documenti di Word non dispongono di una specifica impostazione per il testo bidirezionale (è possibile modificare solo l'allineamento del testo) cui mappare i controlli,che devono quindi essere impostati individualmente.È possibile scrivere codice per esaminare tutti i controlli e imporre il rendering del testo da destra a sinistra.

Bb157877.collapse_all(it-it,VS.110).gifModifica delle impostazioni cultura

Il codice di personalizzazione a livello di documento in genere condivide il thread principale di interfaccia utente di Excel, le modifiche apportate alle impostazioni cultura del thread qualsiasi altra in cui è in esecuzione su tale thread; la modifica non è limitata alla personalizzazione.

I controlli Windows Form vengono inizializzati prima dell'avvio dei componenti aggiuntivi a livello di applicazione da parte dell'applicazione host.In queste situazioni, le impostazioni cultura devono essere modificate prima dell'impostazione dei controlli di interfaccia utente.

Installazione dei Language Pack

Se Windows è impostato su una lingua diversa dall'inglese, è possibile installare i Language Pack per Runtime di Visual Studio Tools per Office in modo da visualizzare i messaggi di Runtime di Visual Studio Tools per Office nella stessa lingua di Windows.Se gli utenti finali eseguono le soluzioni con le impostazioni non in lingua inglese per windows, devono disporre del Language Pack corretto per visualizzare i messaggi di runtime nella stessa lingua di Windows. I Language Pack di Runtime di Visual Studio Tools per Office sono disponibili in Area download Microsoft.

Inoltre, sono necessari i Language Pack per .NET Framework ridistribuibili per i messaggi di ClickOnce.I Language Pack per .NET Framework sono disponibili in Microsoft Download Center (informazioni in lingua inglese).

Impostazioni internazionali e chiamate COM di Excel

Ogni volta che un client gestito chiama un metodo su un oggetto COM e deve passare informazioni specifiche delle impostazioni cultura, utilizza l'oggetto CurrentCulture (impostazioni locali) che corrisponde alle impostazioni locali del thread corrente.Queste, per impostazione predefinita, vengono ereditate dalle impostazioni locali dell'utente.Tuttavia, quando si effettua una chiamata nel modello a oggetti di Excel da una soluzione Excel creata tramite gli strumenti di sviluppo di Office in Visual Studio, il formato dati inglese (Stati Uniti) con ID delle impostazioni locali 1033 viene passato automaticamente al modello a oggetti di Excel.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) prima di essere passati a Microsoft Office Excel o prima che vengano letti i dati dal codice del progetto.

Considerazioni relative all'archiviazione di dati

Per garantire che i dati corretta interpretazione e, è necessario considerare anche i potenziali problemi che possono verificarsi quando un'applicazione memorizza dati, come formule dei fogli di lavoro di Excel, i valori letterali stringa (hard-coded) anziché negli oggetti fortemente tipizzati.Sarà opportuno utilizzare dati formattati presumendo uno stile indipendente dalle impostazioni cultura o impostato sulla lingua inglese (Stati Uniti) con valore di LCID 1033.

Bb157877.collapse_all(it-it,VS.110).gifApplicazioni che utilizzano stringhe letterali

Tra i valori che potrebbero essere specificati a livello di codice (hard-coded) sono inclusi i valori letterali data scritti in formato inglese (Stati Uniti) e le formule dei fogli di lavoro di Excel che contengono nomi di funzioni localizzati.Un altro valore di questo tipo potrebbe essere rappresentato da una stringa hardcoded contenente un numero come "1,000": in alcune culture, questo numero viene interpretato come "mille", in altre come "uno virgola zero".I calcoli e i confronti eseguiti con un formato errato possono produrre dati non corretti.

In Excel, ogni stringa viene interpretata in base all'LCID passato con essa.Può trattarsi di un problema se il formato della stringa non corrisponde all'LCID passato.Le soluzioni Excel create tramite gli strumenti di sviluppo di Office in Visual Studio utilizzano l'LCID 1033 (en-US) quando vengono passati tutti i dati.In Excel, i dati sono visualizzati in base alle impostazioni internazionali e alla lingua dell'interfaccia utente dell'applicazione.In Visual Basic, Applications Edition (VBA), le stringhe sono formattate nello stile en-US e come LCID viene quasi sempre passato 0 (valore che indica l'indipendenza dalla lingua).Ad esempio, nel codice VBA riportato di seguito viene visualizzato un valore formattato correttamente per la data 12 maggio 2004, in base alle impostazioni locali correnti dell'utente.

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

Lo stesso codice, se utilizzato in una soluzione creata tramite gli strumenti di sviluppo di Office in Visual Studio e passato a Excel tramite l'interoperabilità COM, produce gli stessi risultati quando la data viene formattata in stile en-US.

Ad esempio:

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

Quando possibile, si consiglia di utilizzare dati fortemente tipizzati invece di stringhe letterali.Ad esempio, invece di memorizzare una data in una stringa letterale, memorizzarla come valore Double, quindi convertirla in un oggetto DateTime per la modifica.

Nel codice riportato di seguito, una data immessa dall'utente nella cella A5 viene accettata, quindi memorizzata come valore Double, infine convertita in un oggetto DateTime per la visualizzazione nella cella A7.La cella A7 deve essere formattata per la visualizzazione della 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(it-it,VS.110).gifFunzioni dei fogli di lavoro di Excel

I nomi delle funzioni dei fogli di lavoro sono tradotti internamente per la maggior parte delle versioni localizzate di Excel.Tuttavia, per evitare potenziali problemi relativi alla lingua e all'interoperabilità COM, si consiglia di utilizzare nel codice solo i nomi delle funzioni per la lingua inglese.

Bb157877.collapse_all(it-it,VS.110).gifApplicazioni in cui sono utilizzati dati esterni

Anche nel codice in base al quale vengono aperti o utilizzati in altro modo dati esterni, ad esempio file che includono valori separati da virgole (CSV) esportati da un sistema legacy, possono verificarsi problemi se tali file sono esportati utilizzando un altro formato insieme al formato en-US.L'accesso al database non dovrebbe essere influenzato, in quanto si presuppone che tutti i valori siano in formato binario, a meno che non vi siano memorizzate date sotto forma di stringhe o vi vengano eseguite operazioni per le quali non è impiegato il formato binario.Inoltre, se si creano query SQL mediante i dati di Excel, a seconda della funzione utilizzata potrebbe essere necessario verificare che siano in formato en-US.

Vedere anche

Attività

Procedura: utilizzare l'interfaccia utente multilingue (MUI) di Office

Concetti

Parametri facoltativi nelle soluzioni Office

Altre risorse

Progettazione e creazione di soluzioni Office