Aracılığıyla paylaş


Excel Çözümlerini Genelleştirme ve Yerelleştirme

Bu bölüm, Windows için İngilizce olmayan ayarlara sahip olan bilgisayarlarda çalışacak Microsoft Office Excel çözümleri üzerinde dikkat edilmesi gereken özel noktalar hakkında bilgi içerir. Visual Studio kullanarak çözümler diğer tür oluştururken karşılaştığınız gibi Microsoft Office Çözümlerini Yerelleştirme ve genelleştirme çoğu aynı yönleridir.Genel bilgi için bkz: Uygulamaları Genelleştirme ve Yerelleştirme.Genelleştirme ve yerelleştirme bilgiler de bulunabilir msdn Web sayfasında Genelleştirme ve Yerelleştirme sorunları için çözümleri Microsoft Office sistemi için Microsoft Visual Studio Araçları ile oluşturulan.

Varsayılan olarak, yönetilen kod kullanılıp geçirilen veya değiştirilen tüm veriler, İngilizce (United States) biçimlendirme kullanılarak biçimlendirildiği sürece, Microsoft Office Excel içindeki konak kontrolleri herhangi bir Windows bölgesel ayarında doğru çalışır. ' İ hedefleyen projelerde .NET Framework 4 veya .NET Framework 4,5, bu davranış ortak dil çalıştırma (clr) tarafından denetlenir.

Uygulama hedefi: Bu konudaki bilgiler, Excel 2013 ve Excel 2010 için belge düzeyi projeler ve uygulama düzeyi projelere yöneliktir. Daha fazla bilgi edinmek için, bkz. Office Uygulaması ve Proje Türüne Göre Kullanılabilir Özellikler.

Excel'de Çeşitli Bölgesel Ayarlarla Veri Biçimlendirme

Yerel ayar duyarlı, örneğin tarih ve para birimi, önce İngilizce (United States) veri biçimi (yerel ayar kimliği 1033) kullanarak, Microsoft Office Excel'e aktarmak veya Office Project planınızdaki kodu verileri okuyabilir biçime sahip tüm veriyi biçimlendirmeniz gerekir.

Visual Studio'da bir Office çözümü geliştirirken, varsayılan olarak, yerel ayar kimliği 1033 (Bu da yerel ayar kimliği 1033 nesne modeli kilitleme olarak adlandırılır) veri biçimlendirme Excel nesne modeline bekler.Bu davranış, Visual Basic for Applications çalışır şekilde eşleşir.Bununla birlikte, Office çözümlerinizi bu davranışı değiştirebilirsiniz.

Excel nesne modeline her zaman yerel ayar kimliği 1033 bekler ne anlama

Varsayılan olarak, oluşturduğunuz Visual Studio kullanarak Office çözümleri son kullanıcının yerel ayarları tarafından etkilenmez ve her zaman yerel ayarı İngilizce (United States) olsa gibi davranır.Örneğin, get veya set Value2 özelliği Excel'de verileri yerel ayar kimliği 1033 beklediği şekilde biçimlendirilmiş gerekir.Farklı veri biçimi kullanıyorsanız, beklenmeyen sonuçlar alabilirsiniz.

Geçirilen veya yönetilen kod tarafından yönetilen veriler için İngilizce (United States) biçimi kullanıyor olsanız da Excel, yorumlar ve verileri doğru son kullanıcının bölgesel ayarına göre görüntüler.Yönetilen kod veri İngilizce (United States) olduğunu gösterir veri ile birlikte yerel ayar kimliği 1033 biçimi geçirir ve kullanıcı yerel ayarı eşleşecek şekilde biçimlendirilmeli çünkü Excel verileri doğru şekilde biçimlendirebilirsiniz.

Örneğin, son kullanıcılar için Almanca (Almanya) yerel ayarı belirlemek, Bölgesel Seçenekler varsa, bu şekilde biçimlendirilmesi için tarihi 29 Haziran 2005 bekledikleri: 29.06.2005.Ancak, çözümünüzü Excel dize olarak tarihi geçerse, İngilizce (ABD) biçimine göre tarih biçimlendirmeniz gerekir: 29/6/2005.Hücreye bir tarih hücresi olarak biçimlendirilmişse, Excel tarih Almanca (Almanya) biçiminde görüntüler.

Excel nesne modeline diğer yerel ayar kimlikleri geçirme

Ortak dil çalışma zamanı (clr) otomatik olarak tüm yöntemleri ve yerel ayarlara duyarlı veri kabul eden özellikleri Excel nesne modelindeki 1033 yerel ayar Kimliğini geçirir.Bu davranış, otomatik olarak tüm aramalar için nesne modelini değiştirmek için hiçbir yolu yoktur.Ancak, farklı bir yerel ayar kimliği belirli bir yöntemi kullanarak geçirebilirsiniz InvokeMember yöntemi çağırmak için ve yerel ayar kimliği için geçirerek culture yönteminin parametresi.

Belge metni yerelleştirme

Belgeyi, şablonu veya projenizdeki çalışma kitabının büyük bir olasılıkla yerelleştirilmiş ayrı ayrı derlemesinden ve yönetilen kaynaklar olması gereken statik metin içerir.Belgenin bir kopyasını yapmak ve Microsoft Office Word veya Microsoft Office Excel kullanarak metin çevirmek için bunu yapmak için basit bir yol değil.Kodu için hiçbir değişiklik bile herhangi bir belge sayısı aynı derlemeye bağlantılı olabilir çünkü bu işlem çalışır.

Yine de belge metniyle kurduğu kodunuzda herhangi bir parçasını metin ve adlandırılan aralıkları, o yer imleri diliyle eşleşecek şekilde devam eder ve herhangi bir Office belgesini, farklı dilbilgisi ve metin uzunluğunu ayarlamak gerekli biçimlendirme diğer görüntü alanlarını kapsayacak emin olmanız gerekir.Nispeten daha az metin içeren belge şablonları için metin içinde kaynak dosyaları depolamak ve sonra metni çalışma zamanında yükleme düşünmek isteyebilirsiniz.

Metin yönü

Excel'de bir çalışma sayfası sağdan sola metni işlemek için özelliğini ayarlayabilirsiniz.Ana bilgisayar denetimleri veya olmayan herhangi bir denetimi bir RightToLeft Tasarımcısı üzerinde otomatik olarak yerleştirilen özelliği, çalışma zamanında bu ayarları ile eşleşen.Word bir belge ayarı (yalnızca değiştirdiğiniz, metnin hizalamasını) çift yönlü metin için yok olacak bu denetimlerin eşlenemez.Bunun yerine, her denetim için metin hizalamasını ayarlamak gerekir.Tüm denetimleri izlemek ve sağdan sola metin işlemesini zorlamak için kod yazmak mümkündür.

Kültür değiştirme

İş parçacığı kültür için yaptığınız tüm değişiklikler etkiler böylece o iş parçacığı üzerinde çalışan herşeyi belge düzeyi özelleştirme kodunuz genellikle ana UI iş parçacığı, Excel'in paylaşır; değişikliği özelleştirmeniz için sınırlı değildir.

Windows Forms denetimleri, uygulama düzeyi eklentilerin konak uygulama tarafından başlatılan önce başlatılır.Bu durumda, kullanıcı Arabirimi denetimleri ayarlamadan önce kültür değiştirilmelidir.

Dil paketleri yükleme

Windows için İngilizce dışında ayarlar varsa, yükleme Office çalışma zamanı için Visual Studio Araçları görmek için dil paketleri Office çalışma zamanı için Visual Studio Araçları Windows ile aynı dilde iletileri.Herhangi bir son kullanıcı Windows için İngilizce dışındaki ayarlarla çözümlerinizi çalıştırırsanız, bunlar aynı dil çalışma zamanı iletilerini Windows görmek için doğru dil paketi yüklü olmalıdır. Office çalışma zamanı için Visual Studio Araçları Kullanılabilir dil paketleri, Microsoft Yükleme Merkezi'nden.

Ayrıca, .NET Framework yeniden dağıtılabilir dil paketleri ClickOnce iletiler için gereklidir..net Framework dil paketleri edinilebilir Microsoft Yükleme Merkezi'nden.

Bölgesel ayarlar ve Excel com çağrıları

Yönetilen bir istemci bir com nesnesinin bir yöntemini çağırır ve kültüre özgü bilgi geçirmek gerekli olduğunda, bu nedenle kullanarak yapar CurrentCulture (yerel), geçerli iş parçacığı yerel ayarıyla uyuşan.Geçerli iş parçacığı yerel kullanıcı bölgesel ayarları varsayılan olarak devralınır.Ancak, Visual Studio'da Office geliştirme araçları kullanılarak oluşturulan bir Excel çözümden Excel nesne modeline bir çağrı yaptığınızda, İngilizce (ABD) veri biçimi (yerel ayar kimliği 1033) için Excel nesne modelini otomatik olarak geçirilir.Tarih ve para birimi gibi yerel ayarlara duyarlı biçime sahip tüm verileri Microsoft Office Excel'e aktarmak veya proje kodunuzdan verileri okumak önce İngilizce (United States) veri biçimi kullanarak biçimlendirmelisiniz.

Veri depolamak için dikkat edilmesi gereken noktalar

Verilerinizin doğru yorumlanması ve görüntülenen, uygulama ve dize hazır bilgileri, örneğin Excel çalışma sayfası formülleri, veri saklarken sorunları ortaya çıkabilir düşünmelisiniz, emin olmak için (yerine türü kesin belirlenmiş nesnelerin kodlanmış).Kültür-değişmez değer veya İngilizce (ABD) (LCID değeri 1033) stil varsayarak biçimlendirilmiş veri kullanmanız gerekir.

Dize hazır bilgileri kullanan uygulamalar

İngilizce (ABD) biçimi ve yerelleştirilmiş işlev adlarını içeren Excel çalışma sayfası formülleri yazıldığı tarih rakamlarını sabit kodlanmış olabilir olası değerleri içerir.Diğer bir olasılık "1.000" gibi bir sayı içeren sabit kodlanmış bir dize olabilir. Bazı kültürler içinde bu rakamı bin yorumlanır, ancak diğer kültürlerin bir temsil sıfır'ın üzerine gelin.Hesaplamalar ve biçim yanlış gerçekleştirilen karşılaştırmaları yanlış veri kaybına neden.

Excel dize ile herhangi bir dizgi geçirilen LCID uygun olarak yorumlar.Dizenin biçimi geçirilen LCID karşılık gelmez, bu bir sorun olabilir.Excel çözümlerini Visual Studio'da Office geliştirme araçları kullanılarak oluşturulan tüm veri geçirerek LCID 1033'tür (tr-tr) kullanın.Excel verileri Excel kullanıcı arabirimi dili ve bölgesel ayarlara göre görüntüler.Visual Basic for Applications (vba) de bu şekilde çalışır; en-US biçimlendirilmiş dizeler ve vba LCID hemen hemen her zaman 0 (dilden) geçirir.Örneğin, aşağıdaki vba kodu geçerli kullanıcı yerel ayarı uygun olarak 12 Mayıs 2004 için doğru biçimlendirilmiş değeri görüntüler:

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

Tarih en-US stilinde, aynı kodu Visual Studio'da Office geliştirme araçları kullanılarak oluşturulan ve Excel'e com Interop geçirilen bir çözüm kullanıldığında, aynı sonucu verir.

Örne?in:

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

Türü kesin belirlenmiş veri yerine dize hazır bilgileri mümkün olduğunca ile çalışması gerekir.Örneğin, bir dize hazır bilgi tarih depolamak yerine olarak depolamak bir Double, ona dönüştürmek bir DateTime nesne düzenleme için.

Aşağıdaki kod örneğinde, kullanıcı A5 hücresinde girer, olarak sakladığı bir tarih götüren bir Double, kendisine dönüştürür bir DateTime A7 hücresinde görüntülemek için nesne.Tarihi görüntülemek için hücreyi A7 biçimlendirilmiş olması gerekir.

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

Excel çalışma sayfası işlevleri

Çalışma sayfası işlevi adları Excel çoğu dil sürümleri için dahili olarak çevrilir.Ancak, olası dil ve com birlikte çalışabilirlik sorunları, kodunuzda yalnızca İngilizce işlev adlarını kullanmanız önerilir.

Dış veri kullanan uygulamalar

Bu tür dosyalar en-US yanı sıra herhangi bir biçim kullanılarak dışa aktarılır, açılır veya aksi halde eski sistemden dışarı virgülle ayrılmış değerler (csv dosyaları) içeren dosyaları gibi dış veri kullanan herhangi bir kod de etkilenebilir.Veritabanı tarihleri dize olarak saklar veya ikili biçimde kullanmayan işlemleri yapar sürece tüm değerler ikili biçimde olmalıdır çünkü veritabanı erişimi etkilenen değil.Ayrıca, Excel verilerini kullanarak sql sorguları oluşturmak, işlevin bağlı olarak en-US biçiminde olduklarından emin olmak gerekebilir.

Ayrıca bkz.

Görevler

Nasıl Yapılır. Office Çok Dilde Kullanıcı Arabirimini Hedefleme

Kavramlar

Office Çözümlerinde İsteğe Bağlı Parametreler

Diğer Kaynaklar

Office Çözümleri Tasarlama ve Oluşturma