UmyaSpreadsheet.AutoFilterFunctions (umya_spreadsheet_ex v0.7.0)

View Source

Functions for working with auto filters in spreadsheets.

Auto filters allow users to filter data in Excel by adding dropdown menus to column headers.

Summary

Functions

Gets the range of an auto filter in a worksheet.

Checks if a worksheet has an auto filter.

Removes an auto filter from a worksheet.

Sets an auto filter for a range of cells in a worksheet.

Functions

get_auto_filter_range(spreadsheet, sheet_name)

@spec get_auto_filter_range(UmyaSpreadsheet.Spreadsheet.t(), String.t()) ::
  {:ok, String.t() | nil} | {:error, String.t()}

Gets the range of an auto filter in a worksheet.

Parameters

  • spreadsheet - The spreadsheet struct
  • sheet_name - Name of the worksheet

Returns

  • The range of the auto filter (e.g., "A1:E10") or nil if no auto filter exists

Examples

iex> {:ok, spreadsheet} = UmyaSpreadsheet.new()
iex> UmyaSpreadsheet.set_auto_filter(spreadsheet, "Sheet1", "A1:E10")
iex> UmyaSpreadsheet.get_auto_filter_range(spreadsheet, "Sheet1")
"A1:E10"

has_auto_filter(spreadsheet, sheet_name)

@spec has_auto_filter(UmyaSpreadsheet.Spreadsheet.t(), String.t()) ::
  {:ok, boolean()} | {:error, String.t()}

Checks if a worksheet has an auto filter.

Parameters

  • spreadsheet - The spreadsheet struct
  • sheet_name - Name of the worksheet

Returns

  • true if the worksheet has an auto filter, false otherwise

Examples

iex> {:ok, spreadsheet} = UmyaSpreadsheet.new()
iex> UmyaSpreadsheet.set_auto_filter(spreadsheet, "Sheet1", "A1:E10")
iex> UmyaSpreadsheet.has_auto_filter(spreadsheet, "Sheet1")
true

remove_auto_filter(spreadsheet, sheet_name)

@spec remove_auto_filter(UmyaSpreadsheet.Spreadsheet.t(), String.t()) ::
  :ok | {:error, String.t()}

Removes an auto filter from a worksheet.

Parameters

  • spreadsheet - The spreadsheet struct
  • sheet_name - Name of the worksheet

Examples

iex> {:ok, spreadsheet} = UmyaSpreadsheet.new()
iex> UmyaSpreadsheet.set_auto_filter(spreadsheet, "Sheet1", "A1:E10")
iex> UmyaSpreadsheet.remove_auto_filter(spreadsheet, "Sheet1")
:ok

set_auto_filter(spreadsheet, sheet_name, range)

@spec set_auto_filter(UmyaSpreadsheet.Spreadsheet.t(), String.t(), String.t()) ::
  :ok | {:error, String.t()}

Sets an auto filter for a range of cells in a worksheet.

This adds filter dropdown buttons to the top row of the specified range.

Parameters

  • spreadsheet - The spreadsheet struct
  • sheet_name - Name of the worksheet
  • range - Cell range in A1 notation (e.g., "A1:E10")

Examples

iex> {:ok, spreadsheet} = UmyaSpreadsheet.new()
iex> UmyaSpreadsheet.set_auto_filter(spreadsheet, "Sheet1", "A1:E10")
:ok