# Named references, constants, formulas, and macros

A name is used to refer to a cell, a group of cells, a constant value, a formula, or a macro. Usually the scope of a name is global across the whole workbook. However it can be local to a worksheet. For example, if the sales figures are in different cells in different sheets, the user may define the name “Sales” in each sheet. There are built-in names, like “Print_Area” and “Print_Titles”; these two are naturally local to a sheet.

To inspect the names with a user interface like MS Excel, OOo Calc, or Gnumeric, click on Insert -> Names -> Define. This will show the global names, plus those local to the currently selected sheet.

A `Book` object provides two dictionaries (`Book.name_map` and `Book.name_and_scope_map`) and a list (`Book.name_obj_list`) which allow various ways of accessing the `Name` objects. There is one `Name` object for each NAME record found in the workbook. `Name` objects have many attributes, several of which are relevant only when `obj.macro` is `1`.

In the examples directory you will find `namesdemo.xls` which showcases the many different ways that names can be used, and `xlrdnamesAPIdemo.py` which offers 3 different queries for inspecting the names in your files, and shows how to extract whatever a name is referring to. There is currently one “convenience method”, `Name.cell()`, which extracts the value in the case where the name refers to a single cell. The source code for `Name.cell()` is an extra source of information on how the `Name` attributes hang together.

Note

Name information is not extracted from files older than Excel 5.0 (`Book.biff_version < 50`).