def filter_column_list(col, *tokens)
      tokens.flatten!
      raise "Incorrect number of arguments to filter_column_list" if tokens.empty?
      raise "Must call autofilter before filter_column_list" unless @autofilter_area

      col = prepare_filter_column(col)

      @filter_cols[col] = tokens
      @filter_type[col] = 1           # Default style.
      @filter_on        = 1
    end
def filter_column_list(col, *tokens)
      tokens.flatten!
      raise "Incorrect number of arguments to filter_column_list" if tokens.empty?
      raise "Must call autofilter before filter_column_list" unless @autofilter_area

      col = prepare_filter_column(col)

      @filter_cols[col] = tokens
      @filter_type[col] = 1           # Default style.
      @filter_on        = 1
    end
Set the column filter criteria in Excel 2007 list style.

 Prior to Excel 2007 it was only possible to have either 1 or 2 filter
 conditions such as the ones shown above in the filter_column method.

 Excel 2007 introduced a new list style filter where it is possible
 to specify 1 or more 'or' style criteria. For example if your column
 contained data for the first six months the initial data would be
 displayed as all selected as shown on the left. Then if you selected
 'March', 'April' and 'May' they would be displayed as shown on the right.

     No criteria selected      Some criteria selected.

     [/] (Select all)          [X] (Select all)
     [/] January               [ ] January
     [/] February              [ ] February
     [/] March                 [/] March
     [/] April                 [/] April
     [/] May                   [/] May
     [/] June                  [ ] June

 The filter_column_list() method can be used to represent these types of
 filters:

     worksheet.filter_column_list('A', 'March', 'April', 'May')

 The column parameter can either be a zero indexed column number or
 a string column name.

 One or more criteria can be selected:

     worksheet.filter_column_list(0, 'March')
     worksheet.filter_column_list(1, 100, 110, 120, 130)

 NOTE: It isn't sufficient to just specify the filter condition. You must
 also hide any rows that don't match the filter condition. Rows are hidden
 using the set_row() visible parameter. WriteXLSX cannot do this
 automatically since it isn't part of the file format.
 See the autofilter.rb program in the examples directory of the distro
 for an example. e conditions for the filter are specified
 using simple expressions: