excelapache-poiautofilter

Setting filter on headers of an Excel sheet via POI


I generate a sheet, pretty bog standard headers and columns of data.

I want to turn on the "Filter" function for the sheet, so the user can easily sort and filter the data.

Can I so this using POI?


Solution

  • Save the first and last cell from filter area, and execute:

    sheet.setAutoFilter(new CellRangeAddress(firstCell.getRow(), lastCell.getRow(), firstCell.getCol(), lastCell.getCol()));
    

    For example, from the below sheet.

    >x         (x, y)
      0123456  
    0|--hhh--|   h = header
    1|--+++--|   + = values
    2|--+++--|   - = empty fields
    3|--+++--|
    4|-------|
    

    first cell will be the header above the first + (2,1) cell. The last will be the last + cell (5,3)