Bu yazımda C# kullanarak excel dosyasındaki boş satır ve sütunların nasıl silineceğini anlatacağım. Ayrıca boş satır ve sütunları silerken referansların (formüllerde, çizelgelerde ve tablolarda kullanılır) otomatik olarak nasıl güncelleneceğini de açıklayacağım.

Boş Satırları ve Sütunları Kaldırmak için C# API’si

Aspose.Cells for .NET, .NET uygulamalarınız içinden Excel dosyaları oluşturmanıza ve işlemenize olanak tanıyan, iyi bilinen bir elektronik tablo düzenleme API’sidir. API, Excel dosyalarındaki boş satırları ve sütunları birkaç satır kodla kaldırmanıza olanak tanır. API’nin ikili dosyalarını indirebilir veya NuGet kullanarak yüklemesini sağlayabilirsiniz.

PM> Install-Package Aspose.Cells

C# kullanarak Excel’deki Boş Satırları Silme

C# kullanarak Excel’deki tüm boş satırları silme adımları aşağıda verilmiştir.

  • Çalışma Kitabı nesnesini kullanarak bir Excel dosyası açın.
  • Boş satırların bulunduğu çalışma sayfasına erişin. Çalışma sayfasına dizine (sıfır tabanlı) veya ada göre erişilebilir.
  • Herhangi bir veri içermeyen tüm boş satırları silmek için Cells.DeleteBlankRows() yöntemini çağırın.

Aşağıdaki örnek kod, C# kullanarak Excel’deki boşluk satırlarının nasıl kaldırılacağını gösterir.

using Aspose.Cells;

// Mevcut bir excel dosyasını açın.
Workbook wb = new Workbook("SampleInput.xlsx");

// Çalışma sayfaları koleksiyonunu elektronik tabloya alın.
WorksheetCollection sheets = wb.Worksheets;

// Dizine göre WorksheetCollection'dan ilk Çalışma Sayfasını alın.
Worksheet sheet = sheets[0];
// Veya ismiyle.
// Çalışma sayfası sayfası = sayfalar["Sayfa1"];

// Boş Satırları çalışma sayfasından silin.
sheet.Cells.DeleteBlankRows();

// Excel dosyasını kaydedin.
wb.Save("SampleOutput.xlsx");
Boş Satırları Sil

Şekil 1: Boş Satırları Sil

Lütfen Cells.DeleteBlankRows yönteminin, boş satırlara bir tür biçimlendirme uygulanmış olsa bile boş satırları kaldırdığını unutmayın. Ayrıca verilerinizin altındaki biçimlendirilmiş boş satırları da kaldırır.

Biçimlendirilmiş Boş Satırları Sil

Şekil 2: Biçimlendirilmiş Boş Satırları Silme

Bir Excel belgesindeki tüm çalışma sayfalarından boş satırları silmek istiyorsanız, WorksheetCollection üzerinde yineleme yapmanız ve aşağıdaki kodda gösterildiği gibi her çalışma sayfasında DeleteBlankRows yöntemini çağırmanız yeterlidir:

// Mevcut bir excel dosyasını açın.
Workbook workbook = new Workbook("SampleInput.xlsx");

// Çalışma sayfaları üzerinde yineleyin.
foreach (Worksheet sheet in workbook.Worksheets)
{
    // Boş Satırları çalışma sayfasından silin.
    sheet.Cells.DeleteBlankRows();
}

// Excel dosyasını kaydedin.
workbook.Save("SampleOutput.xlsx");

Boş Satırları Silerken Referansları Otomatik Olarak Güncelle

Boş satırların silinmesi formüller, grafikler ve tablolardaki referansları bozabilir. Örneğin, ikinci çalışma sayfasındaki B2 hücresi, aşağıdaki şekilde gösterildiği gibi, birinci çalışma sayfasındaki C3 hücresine atıfta bulunan =Sayfa1!C3 formülüne sahiptir.

Sayfa2'deki bir hücre, Sayfa1'deki bir değere atıfta bulunuyor.

Şekil 3: Sayfa2’deki bir hücre, Sayfa1’deki bir değere atıfta bulunmaktadır.

Sayfa1’deki boş satırları kaldırırsak lima@gmail.com değeri C1 hücresine taşınacaktır. Ancak formül (=Sayfa1!C3) güncellenmeyecek ve aşağıda gösterildiği gibi B2 hücresi geçersiz bir değer içerecektir.

Boş satırlar kaldırıldıktan sonra B2 hücresindeki formül güncellenmedi.

Şekil 4: Boş satırlar kaldırıldıktan sonra B2 hücresindeki formül güncellenmiyor.

DeleteOptions.UpdateReference özelliğini kullanarak ve true olarak ayarlayarak bu sorunu önleyebiliriz. Boş satırları silerken referansların güncellenmesini sağlayacaktır. Aşağıdaki örnek kod, deleteOptions.UpdateReference özelliğinin nasıl kullanılacağını gösterir.

// Mevcut bir excel dosyasını açın.
Workbook wb = new Workbook("SampleInput.xlsx");

// Çalışma sayfaları koleksiyonunu elektronik tabloya alın.
WorksheetCollection sheets = wb.Worksheets;

// Dizine göre WorksheetCollection'dan ilk Çalışma Sayfasını alın.
Worksheet sheet = sheets[0];

// Bu seçenek referansların (formüllerde, grafiklerde) olmasını sağlayacaktır.
// boş satırlar silinirken güncellenir.
DeleteOptions options = new DeleteOptions();
options.UpdateReference = true;

// Boş Satırları çalışma sayfasından silin.
sheet.Cells.DeleteBlankRows(options);

// Excel dosyasını kaydedin.
wb.Save("SampleOutput.xlsx");

Aşağıdaki görselde görüldüğü gibi formül güncellenmiş olup B2 hücresi geçerli bir değer içermektedir.

Formül güncellendi ve hücre geçerli bir değer içeriyor.

Şekil 5: Formül güncellendi ve hücre geçerli bir değer içeriyor.

C# kullanarak Excel’deki Boş Sütunları Silme

Boş sütunları silme adımları, boş satırları silme adımları ile aynıdır. Veri içermeyen tüm boş sütunları silmek için Cells.DeleteBlankColumns yöntemini kullanıyoruz. Aşağıdaki örnek kod, C#’ta boş satırların ve sütunların nasıl silineceğini gösterir.

// Mevcut bir excel dosyasını açın.
Workbook wb = new Workbook("SampleInput.xlsx");

// Çalışma sayfaları koleksiyonunu elektronik tabloya alın.
WorksheetCollection sheets = wb.Worksheets;

// Dizine göre WorksheetCollection'dan ilk Çalışma Sayfasını alın.
Worksheet sheet = sheets[0];

// Bu seçenek referansların (formüllerde, grafiklerde) sağlanmasını sağlayacaktır.
// boş satır ve sütunlar silinirken güncellenir.
DeleteOptions options = new DeleteOptions();
options.UpdateReference = true;

// Boş satırları ve sütunları silin.
sheet.Cells.DeleteBlankRows(options);
sheet.Cells.DeleteBlankColumns(options);

// Çalışma kitabının formüllerini hesaplayın
wb.CalculateFormula();

// Excel dosyasını kaydedin.
wb.Save("SampleOutput.xlsx");
Boş Satırları ve Sütunları Sil

Şekil 6: Boş Satırları ve Sütunları Silme

Çözüm

Bu yazıda C# kullanarak Excel dosyasındaki boş satır ve sütunların nasıl silineceğini öğrendiniz. Ayrıca boş satır ve sütunları silerken referansları (formüllerde, grafiklerde ve tablolarda kullanılan) otomatik olarak nasıl güncelleyeceğinizi öğrendiniz. Daha fazla bilgi için lütfen Aspose.Cells for .NET’in belgelerini inceleyin. Sorularınız varsa lütfen bunları Destek Forumumuzda yayınlamaktan çekinmeyin. Birkaç saat içinde onlara cevap vereceğiz.

Ayrıca bakınız