UPDATE: API for defined names
This commit is contained in:
committed by
Nicolás Hatcher Andrés
parent
ad2efad3ae
commit
e455ed14ea
@@ -27,4 +27,27 @@ impl Workbook {
|
||||
.get_mut(worksheet_index as usize)
|
||||
.ok_or_else(|| "Invalid sheet index".to_string())
|
||||
}
|
||||
|
||||
/// Returns the a list of defined names in the workbook with their scope
|
||||
pub(crate) fn get_defined_names_with_scope(&self) -> Vec<(String, Option<u32>)> {
|
||||
let sheet_id_index: Vec<u32> = self.worksheets.iter().map(|s| s.sheet_id).collect();
|
||||
|
||||
let defined_names = self
|
||||
.defined_names
|
||||
.iter()
|
||||
.map(|dn| {
|
||||
let index = dn
|
||||
.sheet_id
|
||||
.and_then(|sheet_id| {
|
||||
// returns an Option<usize>
|
||||
sheet_id_index.iter().position(|&x| x == sheet_id)
|
||||
})
|
||||
// convert Option<usize> to Option<u32>
|
||||
.map(|pos| pos as u32);
|
||||
|
||||
(dn.name.clone(), index)
|
||||
})
|
||||
.collect::<Vec<_>>();
|
||||
defined_names
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user