Tôi đang sử dụng thư viện Apache POi HSSF để nhập thông tin vào ứng dụng của mình. Vấn đề là các tệp có một số hàng thừa/trống cần được loại bỏ trước khi phân tích cú pháp.Xóa một hàng khỏi trang tính Excel với Apache POI HSSF
Không có phương thức HSSFSheet.removeRow(int rowNum)
. Chỉ removeRow(HSSFRow row)
. Vấn đề với điều này nó là hàng trống không thể được gỡ bỏ. Ví dụ:
sheet.removeRow(sheet.getRow(rowNum));
cho NullPointerChẩn đoán trên hàng trống vì getRow()
trả về giá trị rỗng. Ngoài ra, khi tôi đọc trên diễn đàn, removeRow()
chỉ xóa nội dung ô nhưng hàng vẫn ở đó dưới dạng hàng trống.
Có cách nào xóa hàng (trống hay không) mà không cần tạo một trang tính hoàn toàn mới không có hàng mà tôi muốn xóa?
Vì tôi đã thực hiện phân tích cú pháp cho tệp Excel được định dạng dưới dạng bảng đơn giản (tên cột ở hàng đầu tiên và dữ liệu bên dưới) và tôi cần cảnh báo người dùng nếu có hàng trống. Ngoài ra, các tệp mà tôi muốn nhập bây giờ là từ một ứng dụng khác và có rất nhiều hàng bổ sung (trống hoặc không) chỉ để làm cho tệp trông đẹp hơn! – fmaste
OK - Tuy nhiên, tôi chỉ muốn nói rằng bạn có thể được phục vụ tốt để phân lớp trình phân tích cú pháp hiện tại của bạn và để cho lớp con của bạn bỏ qua các hàng trống thay vì làm điều gì đó với chúng; theo cách đó, các tệp từ ứng dụng khác vẫn có thể trông đẹp và bạn không phải chết trên các tệp đó. :) – delfuego
Có. Tôi cũng nghĩ về điều đó. Nhưng tệp có những thứ như: một hàng chỉ cho cột đầu tiên (id) và phần còn lại của các cột trong hàng bên dưới. Chỉ vì nó trông đẹp hơn. Tôi cần phải làm cho nó một hàng duy nhất và xóa một. Tôi nghĩ rằng tôi sẽ tạo một lớp có chứa một trang tính và danh sách các chỉ mục hàng và xóa các chỉ mục khi tôi xóa một hàng. Của nó đến nhiều, nhưng tôi cần phải xóa hàng, tôi không hiểu tại sao bạn không thể xóa hàng với thư viện này! – fmaste