Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Aspose.Cells, tek bir Excel dosyasını birden çok dosyaya bölmeyi destekler. Bunu yapmanın iki temel yolu vardır: (1) kaynak çalışma kitabındaki her çalışma sayfasını yeni bir çalışma kitabına kopyalayıp her birini ayrı bir dosya olarak kaydetmek ve (2) bir çalışma sayfasındaki belirli bir hücre aralığını yeni bir çalışma kitabına kopyalamak. Her iki yaklaşım da veri alt kümelerini dağıtmanız, farklı alıcılar için daha küçük raporlar oluşturmanız veya verileri tek tek işleme için ayırmanız gerektiğinde kullanışlıdır.
Bir geliştiricinin tek bir Excel dosyasını birkaç küçük dosyaya ayırması gereken birçok gerçek dünya senaryosu vardır. Örneğin, bir çalışma kitabı her departman için bir çalışma sayfası içerebilir ve her departman yöneticisinin yalnızca kendi sayfasını alması gerekebilir. Diğer durumlarda, bir çalışma sayfasından belirli bir tabloyu veya veri bloğunu çıkarmak ve çalışma kitabının geri kalanını açığa çıkarmadan e-posta yoluyla bağımsız bir dosya olarak göndermek isteyebilirsiniz. Büyük konsolide çalışma kitaplarının da daha kolay işlenmesi, daha hızlı yüklenmesi veya diğer sistemler tarafından sonraki işlemler için daha küçük parçalara bölünmesi gerekebilir.
Aspose.Cells bu görev için iki esnek yaklaşım sunar. İlk yaklaşım, kaynak çalışma kitabındaki her çalışma sayfasını yineleyerek içeriğini yepyeni bir Workbook örneğine kopyalar ve her birini ayrı bir dosya olarak kaydeder. İkinci yaklaşım, bir çalışma sayfası içindeki belirli bir hücre aralığına odaklanır ve yalnızca o aralığı yeni bir çalışma kitabına kopyalar. Her iki durumda da genel akış aynıdır: Workbook sınıfını kullanarak kaynak çalışma kitabını yükleyin, Worksheet ve Cells nesneleri aracılığıyla ilgili verilere erişin, içeriği hedef Workbook‘a aktarın ve ardından hedefi diske kaydedin.
Bu yaklaşımda, kaynak çalışma kitabı bir kez açılır, ardından Worksheets koleksiyonundaki her Worksheet için yeni bir hedef Workbook oluşturulur. Kaynak çalışma sayfasının içeriği hedef çalışma kitabının ilk çalışma sayfasına kopyalanır ve hedef çalışma kitabı, adı kaynak çalışma sayfasının adından türetilen bir dosya olarak kaydedilir. Sonuç, her çalışma sayfası için bir çıktı dosyasıdır ve her çıktı dosyası tek bir kaynak sayfanın verilerini içerir.
Bu yöntem, kaynak çalışma kitabınızdaki her çalışma sayfası mantıksal olarak bağımsız bir bilgi birimini (departman, bölge, ay veya ürün hattı gibi) temsil ettiğinde ve her birimi kendi başına teslim etmek veya işlemek istediğinizde doğru seçimdir.
Aşağıdaki adımlar, her çalışma sayfasını yeni bir çalışma kitabına kopyalayarak bir Excel dosyasının nasıl bölüneceğini açıklar:
Workbook nesnesi örnekleyerek ve dosya yolunu kurucusuna geçirerek kaynak Excel dosyasını açın.Workbook.Worksheets koleksiyonunu for veya foreach döngüsü kullanarak yineleyin, böylece kaynak dosyadaki her Worksheet işlenir.Workbook örneği (boş bir çalışma kitabı) oluşturun.Worksheet ekleyin (veya varsayılan ilk çalışma sayfasını kullanın) ve anlamlı bir ad atayın, ideal olarak kaynak çalışma sayfasının Name özelliğiyle aynı olacak şekilde.Cells koleksiyonundaki hücreleri yineleyerek ve değerlerini hedef çalışma sayfasının ilgili hücrelerine yazarak ya da Cells.copy yöntemini kullanarak bir aralığı bir bütün olarak aktararak yapılabilir.dataDir + worksheet.Name + ".xls") böylece oluşturulan her dosyanın benzersiz bir adı olur.Workbook.save yöntemini çağırın.import jpype
import asposecells
jpype.startJVM()
from asposecells.api import Workbook
from asposecells.api import Workbook, Worksheet, Cells, Range, SaveFormat
dataDir = "data/"
workbook = Workbook(dataDir + "book1.xls")
for i in range(workbook.getWorksheets().getCount()):
sourceSheet = workbook.getWorksheets().get(i)
sheetName = sourceSheet.getName()
<span class="n">destWorkbook</span> <span class="o">=</span> <span class="n">Workbook</span><span class="p">()</span>
<span class="n">destIndex</span> <span class="o">=</span> <span class="n">destWorkbook</span><span class="o">.</span><span class="n">getWorksheets</span><span class="p">()</span><span class="o">.</span><span class="n">add</span><span class="p">()</span>
<span class="n">destSheet</span> <span class="o">=</span> <span class="n">destWorkbook</span><span class="o">.</span><span class="n">getWorksheets</span><span class="p">()</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">destIndex</span><span class="p">)</span>
<span class="n">destSheet</span><span class="o">.</span><span class="n">setName</span><span class="p">(</span><span class="n">sheetName</span><span class="p">)</span>
<span class="n">destSheet</span><span class="o">.</span><span class="n">copy</span><span class="p">(</span><span class="n">sourceSheet</span><span class="p">)</span>
<span class="n">destFile</span> <span class="o">=</span> <span class="n">dataDir</span> <span class="o">+</span> <span class="n">sheetName</span> <span class="o">+</span> <span class="s2">".xls"</span>
<span class="n">destWorkbook</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">destFile</span><span class="p">,</span> <span class="n">SaveFormat</span><span class="o">.</span><span class="n">Excel97To2003</span><span class="p">)</span>
jpype.shutdownJVM()
Beklenen çıktı, veri dizininde kaynak çalışma kitabındaki her çalışma sayfası için bir dosya olmak üzere bir dizi yeni dosyadır. Her dosya, ilgili kaynak sayfanın adını taşır ve dosya o tek sayfanın verilerini (ve isteğe bağlı olarak biçimlendirmesini) içerir.
Bazen bölmeniz gereken veriler bir çalışma sayfasının tamamına değil, A1:D10 gibi belirli bir dikdörtgen bölgeye veya belirli bir tabloyu temsil eden adlandırılmış bir aralığa karşılık gelir. Bu durumlarda, tüm çalışma sayfalarını kopyalamak israftır ve daha hassas bir yaklaşım gereklidir: kaynak aralığı tanımlayın, yalnızca o aralığı yeni bir çalışma kitabına kopyalayın ve yeni dosyayı kaydedin.
Bu yaklaşım, ilgisiz tüm içeriği atarken daha büyük bir çalışma sayfasından tek bir tablo, rapor bloğu veya veri alanı çıkarmak istediğinizde idealdir. Ayrıca bir sayfanın kullanıcı tarafından seçilen bölgelerini bağımsız dosyalar olarak dışa aktarmak için de kullanışlıdır.
Aşağıdaki adımlar, belirli bir aralığı yeni bir çalışma kitabına kopyalayarak bir Excel dosyasının nasıl bölüneceğini açıklar:
Workbook nesnesini dosya yoluyla örnekleyerek kaynak Excel dosyasını açın.Worksheet‘i, dizine (örneğin, ilk sayfa) veya Worksheets koleksiyonundan ada göre alın.A1:C10 gibi sabit kodlanmış bir hücre aralığı, Worksheet.Cells koleksiyonu aracılığıyla elde edilen adlandırılmış bir aralık veya Worksheet.Cells.createRange aracılığıyla oluşturulan bir aralık olabilir.Workbook örneği oluşturun.Worksheet‘ine (varsayılan sayfa) erişin.A1 hücresinden başlayarak kopyalayın. Hedef Cells koleksiyonundaki Cells.copy yöntemi, bir aralığın tamamını kopyalamak için kullanılabilir veya kaynak aralığın hücreleri arasında yineleyerek değerlerini putValue ile hedef hücrelere yazabilirsiniz. Aktarılanları kontrol etmek için isteğe bağlı CopyOptions sağlanabilir (yalnızca değerler, değerler ve stiller, formüller vb.).Workbook.save yöntemini kullanarak hedef çalışma kitabını disk üzerinde yeni bir dosya yoluna kaydedin.Beklenen çıktı, veri dizininde kaynak çalışma kitabından çıkarılan belirtilen aralığın yalnızca değerlerini (ve isteğe bağlı olarak biçimlendirmesini) içeren tek bir yeni dosyadır. Hedef dosyanın kaynak dosyadaki başka herhangi bir veriyle ilişkisi yoktur; yalnızca ilk çalışma sayfasının A1 hücresinden başlayarak çıkarılan aralığı içerir.
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.