Sdílet prostřednictvím


Globalizace a lokalizace řešení pro Excel

Tento oddíl obsahuje informace o důležité informace pro řešení Microsoft Office Excel, spuštěných v počítačích, které mají jiné než anglické nastavení systému Windows.Většina aspektů globalizace a lokalizace řešení Microsoft Office jsou stejné jako setkáte při vytváření jiných typů řešení pomocí aplikace Visual Studio.Obecné informace naleznete v tématu Globalizace a lokalizace aplikací.Globalizace a lokalizace informace také naleznete na webu MSDN globalizace a lokalizace pro řešení vytvořena s sada Microsoft Visual Studio Tools for the Microsoft Office System.

Ve výchozím nastavení hostování ovládacích prvků v aplikaci Microsoft Office Excel pracovat správně v libovolné místní nastavení systému Windows tak dlouho, dokud všechna data, která je předána nebo manipulovat pomocí spravovaný kód je zformátován s použitím Angličtina (Spojené státy), formátování.V projektech cílených .NET Framework 4 nebo .NET Framework 4,5, toto chování je řízeno common language runtime (CLR).

Platí pro: Informace v tomto tématu se vztahují na projekty na úrovni dokumentu i na úrovni aplikace v Excelu 2013 a v Excelu 2010. Další informace najdete v tématu Dostupné funkce podle aplikací systému Office a typů projektu.

Formátování dat v aplikaci Excel s různým místním nastavením

Je třeba formátovat všechny údaje, které má národní prostředí formátování, jako například datum a Měna, ve formátu data Angličtina (USA) (locale ID 1033) před předat do aplikace Microsoft Office Excel nebo číst data z kódu aplikace Office project.

Ve výchozím nastavení při vývoji řešení sady Office v sadě Visual Studio objektový model aplikace Excel očekává, ID 1033 národního prostředí dat formátování (to se také nazývá zamykání objektový model ID 1033 národního prostředí).Toto chování odpovídá způsobu, jakým funguje Visual Basic for Applications.Toto chování však lze změnit v řešeních Office.

Vysvětlení, jak Model objektu aplikace Excel vždy očekává ID národního prostředí 1033

Ve výchozím nastavení řešení sady Office, které vytvoříte pomocí sady Visual Studio nejsou ovlivněny nastavením národního prostředí koncového uživatele a vždy chovat, jako kdyby je národní prostředí Angličtina (Spojené státy).Je-li získat nebo nastavit například Value2 vlastnost v aplikaci Excel, data musí být formátován tak, aby se očekává, že ID národního prostředí 1033.Používáte-li jiný formát, můžete získat neočekávané výsledky.

I když použijete formát Angličtina (Spojené státy) pro data, která je předána nebo manipulovat se spravovaným kódem, aplikace Excel interpretuje a zobrazuje data správně podle nastavení národního prostředí koncového uživatele.Aplikace Excel můžete formátovat data správně, protože spravovaný kód předává ID 1033 národního prostředí spolu s daty, což znamená, že data jsou v angličtině (USA) formát a proto je třeba přeformátovat tak, aby odpovídalo nastavení národního prostředí uživatele.

Například je-li koncovým uživatelům získat jejich místní nastavení nastaven na národní prostředí Němčina (Německo), očekávané datum 29. června 2005 má být formátována tímto způsobem: 29.06.2005.Nicméně pokud vaše řešení předává data do aplikace Excel jako řetězec, je nutné formátovat datum podle formátu Angličtina (Spojené státy): 29 6. 2005.Pokud je buňka formátována jako datum buňku, aplikace Excel se zobrazí datum ve formátu němčina (Německo).

Předáním jiné ID národního prostředí k objektovému modelu aplikace Excel

Common language runtime (CLR) automaticky předává ID 1033 národního prostředí pro všechny metody a vlastnosti v objektovém modelu aplikace Excel, které přijímají data národní prostředí.Neexistuje žádný způsob, jak změnit toto chování automaticky pro všechna volání do objektového modelu.Však můžete předat ID jiné národní prostředí pro určitou metodu pomocí InvokeMember volat metodu a předáním ID národního prostředí culture parametru metody.

Lokalizace textu dokumentu

Dokumentu, šablony nebo sešitu ve vašem projektu pravděpodobně obsahuje statický text, který musí být samostatně lokalizované ze sestavení a další spravované prostředky.Jednoduchý způsob, jak to provést je vytvořit kopii dokumentu a překládání textu pomocí aplikace Microsoft Office Word nebo Microsoft Office Excel.Tento proces funguje i v případě, že provádět žádné změny kódu, protože libovolný počet dokumentů lze propojit na stejné sestavení.

Musí stále Ujistěte se, že jakékoli části vašeho kódu, který pracuje s textem dokumentu pokračuje podle jazyka textu a že záložky, pojmenované oblasti, a ostatní zobrazení pole pojmout všechny přeformátování dokumentu sady Office, bylo nezbytné upravit pro různé délky gramatiky a text.Pro šablony dokumentů, které obsahují relativně málo textu můžete chtít zvažte ukládání textu v souborech prostředků a pak načtení textu v době běhu.

Směr textu

V aplikaci Excel můžete nastavit vlastnost list k vykreslení textu zprava doleva.Hostování ovládacích prvků nebo libovolný ovládací prvek, který má RightToLeft vlastností, které jsou umístěny na Návrhář automaticky tomuto nastavení odpovídat za běhu.Není k dispozici nastavení dokumentu pro obousměrný text (jen změnit váš zarovnání textu), takže ovládací prvky nelze mapovat na toto nastavení.Místo toho je nutné nastavit zarovnání textu pro každý ovládací prvek.Je možné psát kód pro zvládnutí všech ovládacích prvků a jejich vykreslování textu zprava doleva.

Změna jazykové verze

Úroveň dokument přizpůsobení kódu obvykle sdílí hlavní podproces uživatelského rozhraní aplikace Excel, tak ovlivní všechny změny provedené v jazykové verzi vlákna, všechno ostatní, na kterém běží ve vlákně; Změna není omezeno pouze na vlastní.

Ovládací prvky model Windows Forms jsou inicializovány před doplňky aplikace jsou spuštěny aplikace hostitele.V těchto případech by měl být změněn na jazykovou verzi před nastavením ovládacích prvků uživatelského rozhraní.

Instalace jazykových sad

Máte-li jiné než anglické nastavení systému Windows, můžete nainstalovat Visual Studio Tools for Office runtime jazykové sady zobrazit Visual Studio Tools for Office runtime zprávy ve stejném jazyce jako Windows.Pokud žádné koncovým uživatelům spustit řešení s neanglické nastavení systému Windows, musí mít správnou jazykovou sadu a zobrazit zprávy za běhu ve stejném jazyce jako Windows. Visual Studio Tools for Office runtime Jazykové balíčky jsou k dispozici Microsoft Download Center.

Navíc jsou nezbytné pro ClickOnce zprávy redistributable jazykové sady rozhraní.NET Framework.Jazykové sady rozhraní.NET Framework, které jsou k dispozici Microsoft Download Center.

Místní nastavení a volání COM aplikace Excel

Při každém spravované klienta volá metodu objektu COM a je třeba předat informace specifické pro jazykovou verzi, učiní tak pomocí CurrentCulture (národní prostředí), odpovídá aktuální národní prostředí pro vlákno.Aktuální národní prostředí pro vlákno je zděděna z místní nastavení uživatele ve výchozím nastavení.Však při volání do objektového modelu aplikace Excel z aplikace Excel řešení vytvořené pomocí nástroje pro vývoj Office v sadě Visual Studio, formát data Angličtina (USA) (locale ID 1033) je předán k objektovému modelu aplikace Excel automaticky.Všechna data, která má národní prostředí formátování, jako například datum a Měna, třeba formátovat pomocí formát data Angličtina (Spojené státy), před předat do aplikace Microsoft Office Excel nebo číst data z vašeho kódu projektu.

Důležité informace týkající se ukládání dat

Chcete-li zajistit, aby správně interpretovat a zobrazit data, měli byste také zvážit, že může dojít k problémům při aplikaci je ukládání dat, například vzorce listu aplikace Excel, v řetězcové literály (pevně) namísto v silně typové objekty.Měli byste použít data, který je formátován, za předpokladu, že invariantní jazykovou verzi nebo Angličtina (Spojené státy) (LCID hodnotu 1033) styl.

Aplikace, které používají řetězcové literály

Možné hodnoty, které by mohly být pevně patří datové literály, které jsou psány ve formátu Angličtina (Spojené státy) a vzorců na listu aplikace Excel, obsahující názvy lokalizované funkce.Další možností může být pevně zakódované řetězce, který obsahuje číslo, například "1 000"; v některých jazykových kultur, to je interpretován jako jeden tisíc, ale v jiné jazykové verze představuje jeden bod nula.Výpočty a porovnání provedeny v nesprávném formátu může mít za následek chybná data.

Aplikace Excel interpretuje všechny řetězce v souladu s LCID, který je předán s řetězcem.To může být problém, je-li formát řetězce neodpovídá LCID, které jsou předány.Při předávání všech dat, použijte řešení aplikace Excel vytvořené pomocí nástroje pro vývoj Office v sadě Visual Studio LCID 1033 (en US).Aplikace Excel zobrazuje data podle místního nastavení a jazyka uživatelského rozhraní aplikace Excel.Visual Basic for Applications (VBA) funguje také tímto způsobem; řetězce, které jsou formátovány jako en US a VBA projde téměř vždy 0 (jazykově neutrální) jako identifikátor LCID.Například následující kód jazyka VBA zobrazí správně formátované hodnoty 12. května 2004, v souladu s aktuální nastavení národního prostředí uživatele:

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

Stejný kód v řešení vytvořené pomocí nástroje pro vývoj Office v sadě Visual Studio a předány do aplikace Excel prostřednictvím volání interop modelu COM. dává stejné výsledky, v případě, že datum je formátován ve stylu en US.

Příklad:

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

Měli byste pracovat s silnými data namísto řetězcové literály, kdykoli je to možné.Například namísto uložení datum v řetězcový literál, uložit jej jako Double, převeďte ji na DateTime objekt pro manipulaci.

Následující příklad kódu má datum, které uživatel zadá do buňky A5, uloží jej jako Double, převede jej do DateTime objekt pro zobrazení v buňce A7.Chcete-li zobrazit kalendářní datum, musí být formátován buňce A7.

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);
    }
}

Funkce listu aplikace Excel

Názvy funkcí listu jsou převedeny vnitřně většině jazykových verzích aplikace Excel.Však z důvodu potenciální jazyka a COM interop problémů doporučujeme použít funkci pouze anglické názvy ve vašem kódu.

Aplikace používající externí Data

Jakýkoli kód, který otevře nebo jinak používá externí data, jako jsou soubory, které obsahují hodnoty oddělené čárkami (CSV soubory) exportována ze starší verze systému může být ovlivněna také v případě, že tyto soubory jsou exportovány pomocí libovolného formátu kromě en US.Přístup k databázi nemusí být ovlivněn, protože všechny hodnoty by měly být v binárním formátu, není-li databázi ukládá kalendářní data jako řetězce nebo provádí operace, které nepoužívají binárním formátu.Také je-li sestavit dotazy SQL pomocí dat z aplikace Excel, budete muset zkontrolujte, zda že jsou ve formátu en US, v závislosti na funkci, kterou používáte.

Viz také

Úkoly

Postupy: Cílení na vícejazyčné uživatelské rozhraní systému Office

Koncepty

Volitelné parametry v řešeních pro systém Office

Další zdroje

Navrhování a tvorba řešení pro systém Office