Trong bài viết này, tôi sẽ giải thích cách xóa hàng và cột trống trong tệp excel bằng C#. Tôi cũng sẽ giải thích cách cập nhật tài liệu tham khảo tự động (được sử dụng trong công thức, biểu đồ và bảng) trong khi xóa các hàng và cột trống.

API C# để xóa hàng và cột trống

Aspose.Cells for .NET là một API thao tác bảng tính nổi tiếng cho phép bạn tạo và xử lý các tệp Excel từ bên trong các ứng dụng .NET của mình. API cho phép bạn xóa các hàng và cột trống trong tệp Excel chỉ bằng một vài dòng mã. Bạn có thể tải xuống các tệp nhị phân của API hoặc cài đặt nó bằng NuGet.

PM> Install-Package Aspose.Cells

Xóa hàng trống trong Excel bằng C#

Sau đây là các bước để xóa tất cả các hàng trống trong Excel bằng C#.

  • Mở tệp Excel bằng đối tượng Workbook.
  • Truy cập trang tính có các hàng trống. Bảng tính có thể được truy cập theo chỉ mục (dựa trên số 0) hoặc theo tên.
  • Gọi phương thức Cells.DeleteBlankRows() để xóa tất cả các hàng trống không chứa bất kỳ dữ liệu nào.

Mã mẫu sau đây cho biết cách xóa các hàng trống trong Excel bằng C#.

using Aspose.Cells;

// Mở một tập tin excel hiện có.
Workbook wb = new Workbook("SampleInput.xlsx");

// Lấy bộ sưu tập bảng tính trong bảng tính.
WorksheetCollection sheets = wb.Worksheets;

// Nhận bảng tính đầu tiên từ WorksheetCollection theo chỉ mục.
Worksheet sheet = sheets[0];
// Hoặc theo tên.
// Trang tính = tờ["Sheet1"];

// Xóa các hàng trống khỏi bảng tính.
sheet.Cells.DeleteBlankRows();

// Lưu tập tin excel.
wb.Save("SampleOutput.xlsx");
Xóa hàng trống

Hình 1: Xóa hàng trống

Xin lưu ý rằng phương thức Cells.DeleteBlankRows sẽ loại bỏ các hàng trống ngay cả khi một số loại định dạng được áp dụng cho chúng. Nó cũng loại bỏ các hàng trống được định dạng bên dưới dữ liệu của bạn.

Xóa các hàng trống được định dạng

Hình 2: Xóa các hàng trống được định dạng

Nếu bạn muốn xóa các hàng trống khỏi tất cả các trang tính trong tài liệu Excel, chỉ cần lặp lại WorksheetCollection và gọi phương thức DeleteBlankRows trên mỗi trang tính như trong đoạn mã sau:

// Mở một tập tin excel hiện có.
Workbook workbook = new Workbook("SampleInput.xlsx");

// Lặp lại trên các bảng tính.
foreach (Worksheet sheet in workbook.Worksheets)
{
    // Xóa các hàng trống khỏi bảng tính.
    sheet.Cells.DeleteBlankRows();
}

// Lưu tập tin excel.
workbook.Save("SampleOutput.xlsx");

Tự động cập nhật tài liệu tham khảo trong khi xóa hàng trống

Việc xóa các hàng trống có thể làm hỏng các tham chiếu trong công thức, biểu đồ và bảng. Ví dụ: ô B2 trong trang tính thứ hai có công thức =Sheet1!C3 đề cập đến ô C3 trong trang tính đầu tiên như minh họa trong hình dưới đây.

Một ô trong Trang tính 2 đang tham chiếu đến một giá trị trong Trang tính 1.

Hình 3: Một ô trong Sheet2 đang tham chiếu đến một giá trị trong Sheet1.

Nếu chúng ta xóa các hàng trống trong Trang 1, giá trị lima@gmail.com sẽ chuyển đến ô C1. Nhưng công thức (=Sheet1!C3) sẽ không cập nhật và ô B2 sẽ chứa giá trị không hợp lệ như hiển thị bên dưới.

Sau khi xóa hàng trống, công thức ở ô B2 chưa được cập nhật.

Hình 4: Sau khi xóa hàng trống, công thức ở ô B2 chưa được cập nhật.

Chúng ta có thể tránh vấn đề này bằng cách sử dụng thuộc tính DeleteOptions.UpdateReference và đặt nó thành true. Nó sẽ đảm bảo rằng các tham chiếu được cập nhật trong khi xóa các hàng trống. Mã mẫu sau đây cho biết cách sử dụng thuộc tính DeleteOptions.UpdateReference.

// Mở một tập tin excel hiện có.
Workbook wb = new Workbook("SampleInput.xlsx");

// Lấy bộ sưu tập bảng tính trong bảng tính.
WorksheetCollection sheets = wb.Worksheets;

// Nhận bảng tính đầu tiên từ WorksheetCollection theo chỉ mục.
Worksheet sheet = sheets[0];

// Tùy chọn này sẽ đảm bảo các tham chiếu (trong công thức, biểu đồ)
// được cập nhật trong khi xóa các hàng trống.
DeleteOptions options = new DeleteOptions();
options.UpdateReference = true;

// Xóa các hàng trống khỏi bảng tính.
sheet.Cells.DeleteBlankRows(options);

// Lưu tập tin excel.
wb.Save("SampleOutput.xlsx");

Như minh họa trong hình dưới đây, công thức đã được cập nhật và ô B2 chứa giá trị hợp lệ.

Công thức đã được cập nhật và ô chứa giá trị hợp lệ.

Hình 5: Công thức đã được cập nhật và ô chứa giá trị hợp lệ.

Xóa các cột trống trong Excel bằng C#

Các bước xóa cột trống cũng giống như xóa hàng trống. Chúng tôi sử dụng phương thức Cells.DeleteBlankColumns để xóa tất cả các cột trống không chứa bất kỳ dữ liệu nào. Mã mẫu sau đây cho biết cách xóa các hàng và cột trống trong C#.

// Mở một tập tin excel hiện có.
Workbook wb = new Workbook("SampleInput.xlsx");

// Lấy bộ sưu tập bảng tính trong bảng tính.
WorksheetCollection sheets = wb.Worksheets;

// Nhận bảng tính đầu tiên từ WorksheetCollection theo chỉ mục.
Worksheet sheet = sheets[0];

// Tùy chọn này sẽ đảm bảo các tham chiếu (trong công thức, biểu đồ)
// được cập nhật trong khi xóa các hàng và cột trống.
DeleteOptions options = new DeleteOptions();
options.UpdateReference = true;

// Xóa các hàng và cột trống.
sheet.Cells.DeleteBlankRows(options);
sheet.Cells.DeleteBlankColumns(options);

// Tính toán các công thức của sổ làm việc
wb.CalculateFormula();

// Lưu tập tin excel.
wb.Save("SampleOutput.xlsx");
Xóa hàng và cột trống

Hình 6: Xóa hàng và cột trống

Phần kết luận

Trong bài viết này, bạn đã học cách xóa hàng và cột trống trong tệp Excel bằng C#. Hơn nữa, bạn đã học cách tự động cập nhật các tham chiếu (được sử dụng trong công thức, biểu đồ và bảng) trong khi xóa các hàng và cột trống. Vui lòng kiểm tra tài liệu của Aspose.Cells for .NET để biết thêm thông tin. Nếu bạn có bất kỳ câu hỏi nào, vui lòng gửi chúng tại Diễn đàn hỗ trợ của chúng tôi. Chúng tôi sẽ trả lời họ sau vài giờ.

Xem thêm