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.
- Usuń puste wiersze w programie Excel za pomocą języka C#
- Aktualizuj odniesienia automatycznie podczas usuwania pustych wierszy
- Usuń puste kolumny w programie Excel za pomocą języka C#
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");

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.

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.

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.

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ść.

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

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.