Globalizace a lokalizace řešení Excelu

Tato část obsahuje informace o zvláštních aspektech systém Microsoft Office excelových řešeních, která budou spuštěna na počítačích s jiným než anglickým nastavením pro Windows. Většina aspektů globalizace a lokalizace systém Microsoft Office řešení je stejná jako při vytváření dalších druhů řešení pomocí sady Visual Studio. Obecné informace naleznete v tématu Globalizace a lokalizace aplikací.

Ve výchozím nastavení fungují ovládací prvky hostitele v systém Microsoft Office Excelu správně v libovolném místním nastavení Windows, pokud jsou všechna data, která se předávají nebo manipulují pomocí spravovaného kódu, formátovaná pomocí anglického formátování (USA). V projektech, které cílí na rozhraní .NET Framework 4 nebo .NET Framework 4.5, je toto chování řízeno modulem CLR (Common Language Runtime).

Platí pro: Informace v tomto tématu platí pro projekty na úrovni dokumentu a projekty doplňků VSTO pro Excel. Další informace naleznete v tématu Funkce dostupné aplikace Office lication a typu projektu.

Formátování dat v Excelu s různými místním nastavením

Před předáním dat systém Microsoft Office Excelu nebo čtením dat z kódu v projektu Office je nutné naformátovat všechna data, která mají formátování citlivé na národní prostředí, jako jsou kalendářní data a USA měna.

Při vývoji řešení Office v sadě Visual Studio očekává objektový model Excelu formátování dat s ID 1033 (označuje se také jako uzamčení objektového modelu na ID národního prostředí 1033). Toto chování odpovídá způsobu, jakým jazyk Visual Basic for Application funguje. Toto chování ale můžete upravit v řešeních Office.

Vysvětlení toho, jak objektový model Excelu vždy očekává ID národního prostředí 1033

Ve výchozím nastavení nejsou řešení Office, která vytvoříte pomocí sady Visual Studio, ovlivněná nastavením národního prostředí koncového uživatele a vždy se chovají, jako by národní prostředí bylo angličtina (USA). Pokud například získáte nebo nastavíte vlastnost v Excelu Value2 , musí být data naformátovaná tak, jak očekává ID národního prostředí 1033. Pokud používáte jiný formát dat, může dojít k neočekávaným výsledkům.

I když používáte anglický formát (USA) pro data, která jsou předána nebo manipulována spravovaným kódem, Excel interpretuje a zobrazuje data správně podle nastavení národního prostředí koncového uživatele. Excel může data naformátovat správně, protože spravovaný kód předává ID národního prostředí 1033 spolu s daty, což označuje, že data jsou v anglickém formátu (USA), a proto musí být přeformátována tak, aby odpovídala nastavení národního prostředí uživatele.

Pokud mají například koncoví uživatelé místní možnosti nastavené na německé národní prostředí (Německo), očekávají, že datum 29. června 2005 bude formátováno tímto způsobem: 29.06.2005. Pokud ale vaše řešení předá datum do Excelu jako řetězec, musíte datum naformátovat podle anglického formátu (USA): 29. 6. 2005. Pokud je buňka naformátovaná jako buňka kalendářního data, excel zobrazí datum v německém formátu (Německo).

Předání jiných ID národního prostředí do objektového modelu Excelu

Modul CLR (Common Language Runtime) automaticky předává ID národního prostředí 1033 všem metodám a vlastnostem v objektovém modelu Excelu, které přijímají data citlivá na národní prostředí. Neexistuje způsob, jak toto chování automaticky změnit pro všechna volání do objektového modelu. Můžete však předat jiné ID národního prostředí konkrétní metodě pomocí volání InvokeMember metody a předáním ID národního prostředí parametru jazykové verze metody.

Lokalizace textu dokumentu

Dokument, šablona nebo sešit v projektu pravděpodobně obsahuje statický text, který se musí lokalizovat odděleně od sestavení a dalších spravovaných prostředků. Jednoduchým způsobem, jak to udělat, je vytvořit kopii dokumentu a přeložit text pomocí systém Microsoft Office Wordu nebo systém Microsoft Office Excelu. Tento proces funguje i v případě, že v kódu neproděláte žádné změny, protože libovolný počet dokumentů lze propojit se stejným sestavením.

Musíte se ujistit, že jakákoli část kódu, která komunikuje s textem dokumentu, bude i nadále odpovídat jazyku textu a že záložky, pojmenované oblasti a další zobrazovaná pole budou obsahovat veškeré přeformátování dokumentu Office, které bylo nutné upravit pro různé gramatické a textové délky. U šablon dokumentů, které obsahují relativně malý text, můžete zvážit uložení textu do souborů prostředků a následné načtení textu za běhu.

Směr textu

V Excelu můžete nastavit vlastnost listu tak, aby se text vykresloval zprava doleva. Hostitelské ovládací prvky nebo jakýkoli ovládací prvek, který má RightToLeft vlastnost, která je umístěna v návrháři, se automaticky shoduje s těmito nastaveními za běhu. Word nemá nastavení dokumentu pro obousměrný text (stačí změnit zarovnání textu), takže ovládací prvky nelze namapovat na toto nastavení. Místo toho je nutné nastavit zarovnání textu pro každý ovládací prvek. Je možné napsat kód, který projde všemi ovládacími prvky, a vynutit jejich vykreslení textu zprava doleva.

Změna jazykové verze

Kód přizpůsobení na úrovni dokumentu obvykle sdílí hlavní vlákno uživatelského rozhraní Aplikace Excel, takže všechny změny, které uděláte v jazykové verzi vlákna, ovlivní všechno ostatní, co běží na daném vlákně; změna není omezena na vaše přizpůsobení.

model Windows Forms ovládací prvky se inicializují před spuštěním doplňků VSTO na úrovni aplikace hostitelskou aplikací. V těchto situacích je třeba před nastavením ovládacích prvků uživatelského rozhraní změnit jazykovou verzi.

Instalace jazykových sad

Pokud máte jiné než anglické nastavení pro Windows, můžete nainstalovat sady Visual Studio Tools for Office Runtime Language Pack a zobrazit zprávy modulu runtime Visual Studio Tools for Office ve stejném jazyce jako Windows. Pokud všichni koncoví uživatelé spouštějí vaše řešení s jiným než anglickým nastavením pro Windows, musí mít správnou jazykovou sadu, aby viděli zprávy modulu runtime ve stejném jazyce jako Windows. Jazykové sady Visual Studio Tools for Office runtime jsou k dispozici v centru pro stažení softwaru společnosti Microsoft.

Kromě toho jsou distribuovatelné jazykové sady rozhraní .NET Framework nezbytné pro zprávy ClickOnce. Jazykové sady rozhraní .NET Framework jsou k dispozici na webu Stažení softwaru společnosti Microsoft.

Místní nastavení a volání modelu COM v Excelu

Pokaždé, když spravovaný klient volá metodu objektu COM a potřebuje předat informace specifické pro jazykovou verzi, provede to pomocí CurrentCulture (národního prostředí), které odpovídá aktuálnímu národnímu prostředí vlákna. Aktuální národní prostředí vlákna je ve výchozím nastavení uživatele zděděno z místního nastavení. Při volání objektového modelu Excelu z excelového řešení vytvořeného pomocí vývojových nástrojů Office v sadě Visual Studio se do objektového modelu Excelu automaticky předá formát dat v angličtině (USA) (ID národního prostředí 1033). Před předáním do systém Microsoft Office Excelu nebo čtení dat z kódu projektu je nutné formátovat všechna data, která mají formátování citlivé na národní prostředí, jako jsou kalendářní data a USA měna.

Důležité informace o ukládání dat

Pokud chcete zajistit, aby se data správně interpretovala a zobrazovala, měli byste také zvážit, že problémy mohou nastat, když aplikace ukládá data, jako jsou vzorce listu Excelu, v řetězcových literálech (pevně zakódovaných) místo v objektech se silnými typy. Měli byste použít data, která jsou formátována za předpokladu, že jazyková verze je invariantní nebo angličtina (USA) (hodnota LCID 1033).

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

Možné hodnoty, které můžou být pevně zakódované, zahrnují literály kalendářních dat, které jsou napsané v anglickém formátu (USA) a vzorce listu Aplikace Excel, které obsahují lokalizované názvy funkcí. Další možností může být pevně zakódovaný řetězec, který obsahuje číslo, například "1 000"; v některých kulturách se to interpretuje jako jeden tisíc, ale v jiných jazykových verzích představuje jeden bod nula. Výpočty a porovnání provedené s nesprávným formátem můžou vést k nesprávným datům.

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, pokud formát řetězce neodpovídá LCID, který je předán. Excelová řešení vytvořená pomocí vývojových nástrojů Office v sadě Visual Studio při předávání všech dat používají LCID 1033 (en-US). Excel zobrazí data podle místního nastavení a jazyka uživatelského rozhraní Excelu. jazyk Visual Basic for Application (VBA) funguje také tímto způsobem. Řetězce jsou formátovány jako en-US a jazyk VBA téměř vždy předává 0 (jazyk neutrální) jako LCID. Například následující kód jazyka VBA zobrazí správně formátovanou hodnotu pro 12. května 2004 v souladu s nastavením aktuálního národního prostředí uživatele:

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

Stejný kód, pokud se používá v řešení vytvořeném pomocí vývojových nástrojů Office v sadě Visual Studio a předán Do Excelu prostřednictvím zprostředkovatele komunikace modelu COM, vytvoří stejné výsledky, když je datum formátováno ve stylu en-US.

Příklad:

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

Pokud je to možné, měli byste místo řetězcových literálů pracovat s daty silného typu. Například místo uložení data do řetězcového literálu ho uložte jako Doubleobjekt a pak ho převeďte na DateTime objekt pro manipulaci.

Následující příklad kódu přebírá datum, které uživatel zadá do buňky A5, uloží ho jako a Doublepak ho převede na DateTime objekt pro zobrazení v buňce A7. Buňka A7 musí být naformátovaná, aby se zobrazilo datum.

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 se interně překládají pro většinu jazykových verzí aplikace Excel. Vzhledem k potenciálním problémům s interoperabilitou jazyka a modelu COM se ale doporučuje ve svém kódu používat pouze názvy anglických funkcí.

Aplikace, které používají externí data

Jakýkoli kód, který se otevře nebo jinak používá externí data, například soubory, které obsahují hodnoty oddělené čárkami (soubory CSV) exportované ze staršího systému, můžou být ovlivněné také v případě, že se tyto soubory exportují 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, pokud databáze neuchovává kalendářní data jako řetězce nebo neprovádí operace, které nepoužívají binární formát. Pokud vytváříte dotazy SQL pomocí dat z Excelu, budete možná muset zajistit, aby byly ve formátu en-US v závislosti na používané funkci.