W tym artykule wyjaśnię, jak usunąć puste wiersze i kolumny w pliku Excela przy użyciu języka C#. Wyjaśnię również, jak automatycznie aktualizować odniesienia (używane w formułach, wykresach i tabelach) podczas usuwania pustych wierszy i kolumn.

API C# do usuwania pustych wierszy i kolumn

Aspose.Cells for .NET to dobrze znany interfejs API do manipulacji arkuszami kalkulacyjnymi, który umożliwia tworzenie i przetwarzanie plików Excel z poziomu aplikacji .NET. API umożliwia usunięcie pustych wierszy i kolumn w plikach Excel w kilku linijkach kodu. Możesz pobrać pliki binarne interfejsu API lub zainstalować go za pomocą NuGet.

PM> Install-Package Aspose.Cells

Usuń puste wiersze w programie Excel za pomocą języka C#

Poniżej przedstawiono kroki, aby usunąć wszystkie puste wiersze w programie Excel przy użyciu języka C#.

  • Otwórz plik Excel za pomocą obiektu Skoroszyt.
  • Uzyskaj dostęp do arkusza zawierającego puste wiersze. Dostęp do arkusza można uzyskać poprzez indeks (liczony od zera) lub nazwę.
  • Wywołaj metodę Cells.DeleteBlankRows(), aby usunąć wszystkie puste wiersze, które nie zawierają żadnych danych.

Poniższy przykładowy kod pokazuje, jak usunąć puste wiersze w programie Excel przy użyciu języka C#.

using Aspose.Cells;

// Otwórz istniejący plik Excela.
Workbook wb = new Workbook("SampleInput.xlsx");

// Pobierz kolekcję arkuszy kalkulacyjnych w arkuszu kalkulacyjnym.
WorksheetCollection sheets = wb.Worksheets;

// Pobierz pierwszy arkusz z WorksheetCollection według indeksu.
Worksheet sheet = sheets[0];
// Lub po imieniu.
// Arkusz arkusza = arkusze["Arkusz1"];

// Usuń puste wiersze z arkusza.
sheet.Cells.DeleteBlankRows();

// Zapisz plik Excela.
wb.Save("SampleOutput.xlsx");
Usuń puste wiersze

Ryc. 1: Usuń puste wiersze

Należy pamiętać, że metoda Cells.DeleteBlankRows usuwa puste wiersze, nawet jeśli zastosowano do nich jakieś formatowanie. Usuwa również sformatowane puste wiersze poniżej danych.

Usuń sformatowane puste wiersze

Ryc. 2: Usuń sformatowane puste wiersze

Jeśli chcesz usunąć puste wiersze ze wszystkich arkuszy w dokumencie Excel, po prostu wykonaj iterację po WorksheetCollection i wywołaj metodę DeleteBlankRows w każdym arkuszu, jak pokazano w następującym kodzie:

// Otwórz istniejący plik Excela.
Workbook workbook = new Workbook("SampleInput.xlsx");

// Iteruj po arkuszach.
foreach (Worksheet sheet in workbook.Worksheets)
{
    // Usuń puste wiersze z arkusza.
    sheet.Cells.DeleteBlankRows();
}

// Zapisz plik Excela.
workbook.Save("SampleOutput.xlsx");

Aktualizuj odniesienia automatycznie podczas usuwania pustych wierszy

Usunięcie pustych wierszy może spowodować uszkodzenie odwołań w formułach, wykresach i tabelach. Na przykład komórka B2 w drugim arkuszu ma formułę =Arkusz1!C3, która odnosi się do komórki C3 w pierwszym arkuszu, jak pokazano na poniższym rysunku.

Komórka w Arkuszu 2 odwołuje się do wartości w Arkuszu 1.

Ryc. 3: Komórka w Arkuszu 2 odnosi się do wartości w Arkuszu 1.

Jeśli usuniemy puste wiersze w Arkuszu 1, wartość lima@gmail.com zostanie przeniesiona do komórki C1. Ale formuła (=Arkusz1!C3) nie zostanie zaktualizowana, a komórka B2 będzie zawierać nieprawidłową wartość, jak pokazano poniżej.

Po usunięciu pustych wierszy formuła w komórce B2 nie została zaktualizowana.

Ryc. 4: Po usunięciu pustych wierszy formuła w komórce B2 nie została zaktualizowana.

Możemy uniknąć tego problemu, używając właściwości DeleteOptions.UpdateReference i ustawiając ją na true. Zapewni to aktualizację odwołań podczas usuwania pustych wierszy. Poniższy przykładowy kod pokazuje, jak używać właściwości DeleteOptions.UpdateReference.

// Otwórz istniejący plik Excela.
Workbook wb = new Workbook("SampleInput.xlsx");

// Pobierz kolekcję arkuszy kalkulacyjnych w arkuszu kalkulacyjnym.
WorksheetCollection sheets = wb.Worksheets;

// Pobierz pierwszy arkusz z WorksheetCollection według indeksu.
Worksheet sheet = sheets[0];

// Ta opcja zapewni, że odniesienia (we wzorach, wykresach)
// są aktualizowane podczas usuwania pustych wierszy.
DeleteOptions options = new DeleteOptions();
options.UpdateReference = true;

// Usuń puste wiersze z arkusza.
sheet.Cells.DeleteBlankRows(options);

// Zapisz plik Excela.
wb.Save("SampleOutput.xlsx");

Jak pokazano na poniższej ilustracji, formuła została zaktualizowana, a komórka B2 zawiera prawidłową wartość.

Formuła została zaktualizowana i komórka zawiera prawidłową wartość.

Rys. 5: Formuła została zaktualizowana i komórka zawiera prawidłową wartość.

Usuń puste kolumny w programie Excel za pomocą języka C#

Procedura usuwania pustych kolumn jest taka sama, jak w przypadku usuwania pustych wierszy. Używamy metody Cells.DeleteBlankColumns do usunięcia wszystkich pustych kolumn, które nie zawierają żadnych danych. Poniższy przykładowy kod pokazuje, jak usunąć puste wiersze i kolumny w języku C#.

// Otwórz istniejący plik Excela.
Workbook wb = new Workbook("SampleInput.xlsx");

// Pobierz kolekcję arkuszy kalkulacyjnych w arkuszu kalkulacyjnym.
WorksheetCollection sheets = wb.Worksheets;

// Pobierz pierwszy arkusz z WorksheetCollection według indeksu.
Worksheet sheet = sheets[0];

// Ta opcja zapewni, że odniesienia (we wzorach, wykresach)
// są aktualizowane podczas usuwania pustych wierszy i kolumn.
DeleteOptions options = new DeleteOptions();
options.UpdateReference = true;

// Usuń puste wiersze i kolumny.
sheet.Cells.DeleteBlankRows(options);
sheet.Cells.DeleteBlankColumns(options);

// Oblicz formuły skoroszytu
wb.CalculateFormula();

// Zapisz plik Excela.
wb.Save("SampleOutput.xlsx");
Usuń puste wiersze i kolumny

Ryc. 6: Usuń puste wiersze i kolumny

Wniosek

W tym artykule dowiedziałeś się, jak usuwać puste wiersze i kolumny w pliku Excel przy użyciu języka C#. Co więcej, nauczyłeś się, jak automatycznie aktualizować odniesienia (używane w formułach, wykresach i tabelach) podczas usuwania pustych wierszy i kolumn. Aby uzyskać więcej informacji, sprawdź dokumentację Aspose.Cells for .NET. Jeśli masz jakieś pytania, możesz je zadać na naszym Forum pomocy. Odpowiemy na nie w ciągu kilku godzin.

Zobacz też