Skip to main content

DefinedName

Struct DefinedName 

Source
pub struct DefinedName {
    pub name: String,
    pub refers_to: String,
    pub local_sheet_id: Option<usize>,
    pub hidden: bool,
    pub comment: Option<String>,
}
Expand description

A named range/formula/constant (<definedName>, CT_DefinedName) — unlike ConditionalFormattingRule/DataValidationRule, this is a workbook-level construct, not attached to any particular Sheet, even when local_sheet_id scopes it to one.

Only name/refers_to/local_sheet_id/hidden/comment are modeled. CT_DefinedName’s remaining attributes (function/ vbProcedure/xlm/functionGroupId/shortcutKey/publishToServer/ workbookParameter/customMenu/description/help/statusBar) are all macro/add-in/UI-text concerns with no real demand seen yet, same scope-reduction posture as elsewhere in this crate. SpreadsheetML’s reserved _xlnm.* built-in names (print area, print titles, filter database..) aren’t given any special handling — a caller can write one like any other name, but nothing here validates or treats it specially.

Fields§

§name: String

The name shown in Excel’s Name Manager (name, required).

§refers_to: String

The formula, range reference, or constant this name refers to (e.g. "Feuil1!$A$1:$B$10"), written as the element’s own text content — unlike a conditional formatting/data validation rule’s formula, CT_DefinedName has simple content (ST_Formula), not a dedicated child element.

§local_sheet_id: Option<usize>

If Some, scopes this name to a single sheet rather than the whole workbook (localSheetId, a 0-based index into Workbook.sheets in declaration order) — a sheet-scoped name can be duplicated across different sheets’ scopes, unlike a workbook-scoped one. None means workbook-wide scope, the common case.

§hidden: bool

Whether this name is hidden in Excel’s Name Manager UI (hidden).

§comment: Option<String>

An optional comment shown for this name (comment).

Implementations§

Source§

impl DefinedName

Source

pub fn new(name: impl Into<String>, refers_to: impl Into<String>) -> DefinedName

Creates a workbook-scoped defined name, not hidden, no comment.

Examples found in repository?
examples/xlsx_workbook_metadata.rs (line 54)
16fn main() -> office_toolkit::Result<()> {
17    let path = output_path("xlsx_workbook_metadata.xlsx");
18
19    let named_ranges_sheet = Sheet::new("Named ranges")
20        .with_row(Row::new().with_text("Tax rate").with_number(0.0825))
21        .with_row(Row::new().with_cell(Cell::formula("TaxRate*100").with_cached_value(8.25)));
22
23    let calculation_sheet = Sheet::new("Calculation").with_row(
24        Row::new().with_text("Set to manual recalculation with iterative calculation enabled."),
25    );
26
27    let scenarios_sheet = Sheet::new("Scenarios")
28        .with_row(Row::new().with_text("Revenue").with_number(100_000.0))
29        .with_row(Row::new().with_text("Cost").with_number(60_000.0))
30        .with_scenario(
31            Scenario::new("Best case")
32                .with_input("B1", "150000")
33                .with_input("B2", "55000")
34                .with_comment("Optimistic projection"),
35        )
36        .with_scenario(
37            Scenario::new("Worst case")
38                .with_input("B1", "70000")
39                .with_input("B2", "65000"),
40        );
41
42    let auto_filter_sheet = Sheet::new("Autofilter criteria")
43        .with_row(Row::new().with_text("Region"))
44        .with_row(Row::new().with_text("North"))
45        .with_row(Row::new().with_text("South"))
46        .with_auto_filter_range("A1:A3")
47        .with_auto_filter_column(AutoFilterColumn::new(0, vec!["North".to_string()]));
48
49    let ignored_errors_sheet = Sheet::new("Ignored errors")
50        .with_row(Row::new().with_text("123")) // a number stored as text — normally flagged by Excel
51        .with_ignored_error(IgnoredError::new("A1:A1").with_number_stored_as_text(true));
52
53    let workbook = Workbook::new()
54        .with_defined_name(DefinedName::new("TaxRate", "'Named ranges'!$B$1"))
55        .with_calculation(
56            CalculationProperties::new()
57                .with_mode(CalculationMode::Manual)
58                .with_iterate(true),
59        )
60        .with_sheet(named_ranges_sheet)
61        .with_sheet(calculation_sheet)
62        .with_sheet(scenarios_sheet)
63        .with_sheet(auto_filter_sheet)
64        .with_sheet(ignored_errors_sheet);
65
66    // `Workbook.properties` has no `with_*` builder — it's set directly,
67    // like any other public field.
68    let properties = DocumentProperties::new()
69        .with_title("Metadata example")
70        .with_author("Example Author")
71        .with_subject("Workbook-level features")
72        .with_custom_property(
73            "ProjectCode",
74            CustomPropertyValue::Text("XLSX-META".to_string()),
75        );
76    let workbook = Workbook {
77        properties,
78        ..workbook
79    };
80
81    workbook.save_to_file(&path)?;
82    println!("Wrote {}", path.display());
83    Ok(())
84}
Source

pub fn with_local_sheet_id(self, local_sheet_id: usize) -> DefinedName

Scopes this name to a single sheet (by its 0-based position in Workbook.sheets) and returns it for chaining.

Source

pub fn with_hidden(self, hidden: bool) -> DefinedName

Sets whether this name is hidden in Excel’s Name Manager and returns it for chaining.

Source

pub fn with_comment(self, comment: impl Into<String>) -> DefinedName

Sets this name’s comment and returns it for chaining.

Trait Implementations§

Source§

impl Clone for DefinedName

Source§

fn clone(&self) -> DefinedName

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for DefinedName

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl PartialEq for DefinedName

Source§

fn eq(&self, other: &DefinedName) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for DefinedName

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.