2013-08-12 19 views
27

Projemin yapmamı istediği sayıda dışa aktarma için Excel dosyaları oluşturmak üzere EPPlus ile çok çalışıyorum. İstedikleri ihracatın çoğu, eski sistemlerinde sahip oldukları ihracatlarla mükemmel bir şekilde eşleşme eğilimindedir. Bunlardan biri, ancak, farklı istiyorlar. Onlar,, bazı tipik ve özel düzenlemeler yaptıktan sonra, eski sisteminden yapılan ihracatlardan tam olarak görünmesini istiyor.EPPlus'taki sütunları dondurma (bir Excel bölmesi işlevi)

Yaptıkları düzenlemelerden bazıları, her satırın olmasını istediğinden çok daha uzun hale getirir, böylece sütun bilgilerinden bazılarının ekranda kilitli kalmasını ve sütunların geri kalanını tutabilirler. normal olarak kaydırılmalıdır (örn. Excel'in bölünmüş işlevi). Sütunları ws.Column(6).Style.Locked = true ile kilitlemeye çalıştım, ancak bu işe yaramaz. Ayrıca bir hücre aralığı için Locked özelliğini true olarak ayarlamayı denedim, ancak aynı zamanda işe yaramadı.

Sütunları yerinde nasıl dondurabilirim?

cevap

50

EPPlus'un, adı verilen Worksheet nesnesinde bunu yapmak için yerleşik bir işlevi olduğu ortaya çıkıyor. Bu işlev, her ikisi de int: Satır ve Sütun olmak üzere 2 parametreye sahiptir. Bunu yaptığınızda, çalışma sayfasını görüntülerken yerine kilitlemek istediğiniz satır veya sütunları dondurabilirsiniz.

EPPlus web sitesindeki örneklerden biri, örneğin ana odağı olmasa da onu kullanır. Bu örnek, found here olabilir.

olsa bilmeniz gereken bu işlevle bir nokta vardır: Eğer satır veya sütun parametre için kullanmak sayı aslında yerde yılında DEĞİL dondurulur ilk sütundur. Başka bir deyişle, ilk 5 sütun dondurulacak isterseniz aşağıdaki arama yapmak zorunda kalacak:

ws.View.FreezePanes(1,6)

+0

IronMan84 kullanabilirsiniz xlWorkSheet.View.FreezePanes (1, 6); Sadece ilk satır için 5 sütun dondurmak yerine, tüm satırlar için 5 sütun dondurulur. İstediğim sonuca nasıl ulaşacağım hakkında bir fikrin var mı ?? –

+0

IronMan84: Başlangıç ​​dizinleri vermek yerine satır ve sütunları dondurma için aralık belirtmenin bir yolu var mı? –

+0

Excel, hücrelerin aralıklarını, yalnızca e-tablonun üst ve sol taraflarındaki sütun veya satırları dondurmanıza izin vermez. Ancak, çalışma sayfasını kaydırma çubuklarını kullanarak gezinilebilecek bölümlere bölmek için Bölme işlevini kullanabilirsiniz. Daha fazla bilgi için http://classroom.synonym.com/freeze-selection-excel-11819.html sayfasına bakın. –

1

ı kullanırken fark (6 dondurulmuş değil ilk sütun olduğu yerlerde) @ IronMan84'ün önerisi, yalnızca satırla ilgileniyor, ancak sütunla ilgilenmiyorsanız. Benim excel başlığındaki ilk 5 sütunları dondurmak için istiyorum ve aşağıdaki kodu yazın:: Sen

ws.View.FreezePanes(3, 1); // (Freeze Row 2 and no column) 
+0

Bu doğru. Sıfırlamaya ayarlamayı denemek, Excel'in belgenin bozuk olduğu bir hatayı rapor etmesine neden olur. Ancak, dondurmak istediğiniz birçok satır ve/veya sütuna 2 ekleyin. – jocull

+0

Üzgünüz, bu yanlış - satır/sütun sayısına ** 1 ** ekle! – jocull

İlgili konular