code: protected boolean matchesFilter(final Object obj) {
          for (final SheetColumn col : getColumns()) {
              final String filterValue = col.getFilterValue();
              if (LangUtils.isValueBlank(filterValue)) {
                  continue;
              }
  
              final Object filterBy = col.getFilterBy();
              // if we have a filter, but no value in the row, no match
              if (filterBy == null) {
                  return false;
              }
  
              String filterMatchMode = col.getFilterMatchMode();
              if (LangUtils.isValueBlank(filterMatchMode)) {
                  filterMatchMode = "contains";
              }
  
              // case-insensitive
              final String value = filterBy.toString().toLowerCase();
              final String filter = filterValue.toLowerCase();
              switch (filterMatchMode) {
                  case "startsWith":
                      if (!value.startsWith(filter)) {
                          return false;
                      }
                      break;
                  case "endsWith":
                      if (!value.endsWith(filter)) {
                          return false;
                      }
                      break;
                  case "exact":
                      if (!value.equals(filter)) {
                          return false;
                      }
                      break;
                  default:
                      // contains is default
                      if (!value.contains(filter)) {
                          return false;
                      }
              }
          }
          return true;
      }
docs: Evaluates the specified item value against the column filters and if they match, returns true, otherwise false. If no filterMatchMode is given on a
  column than the "contains" mode is used. Otherwise the following filterMatchMode values are possible: - startsWith: Checks if column value starts with
  the filter value. - endsWith: Checks if column value ends with the filter value. - contains: Checks if column value contains the filter value. - exact:
  Checks if string representations of column value and filter value are same.
  
  @param obj
  @return