Khi bạn lọc phạm vi, bạn có thể truy cập vào các ô vượt qua tiêu chí lọc bằng cách sử dụng phương thức Range.SpecialCells, chuyển giá trị 'Excel.XlCellType.xlCellTypeVisible' để nhận các ô hiển thị.
Dựa trên mã ví dụ của bạn, trên, truy cập vào các tế bào có thể nhìn thấy nên tìm kiếm một cái gì đó như thế này:
Excel.Range visibleCells = sheet.UsedRange.SpecialCells(
Excel.XlCellType.xlCellTypeVisible,
Type.Missing)
Từ đó bạn có thể truy cập vào từng tế bào trong vùng khả kiến, thông qua bộ sưu tập 'Range.Cells' hoặc truy cập mỗi hàng bằng cách truy cập các khu vực thông qua bộ sưu tập 'Range.Areas' và sau đó lặp lại từng hàng trong bộ sưu tập 'Hàng' cho từng khu vực. Ví dụ:
foreach (Excel.Range area in visibleCells.Areas)
{
foreach (Excel.Range row in area.Rows)
{
// Process each un-filtered, visible row here.
}
}
Hy vọng điều này sẽ hữu ích!
Mike
Nguồn
2009-12-16 22:56:56
Có !! cảm ơn điều đó đã giúp ... – shahjapan
Tuyệt vời, vui vì nó đã làm việc cho bạn, shahjapan. :) –
Người downvoter có thể tự giải thích được không? Đây là một giải pháp sạch sẽ và nó đã làm việc cho các poster ban đầu. Có cái gì đó đã không làm việc cho bạn ở đây? –