sheetsui/src/book/mod.rs
2024-11-11 20:36:17 -05:00

29 lines
785 B
Rust

use anyhow::{anyhow, Result};
use ironcalc::base::{Model, types::{Worksheet, SheetData}};
pub struct Book {
model: Model,
current_sheet: u32,
current_location: (u32, u32),
}
impl Book {
pub fn get_sheet_name(&self) -> Result<&str> {
Ok(&self.get_sheet()?.name)
}
pub fn get_sheet_data(&self) -> Result<&SheetData> {
Ok(&self.get_sheet()?.sheet_data)
}
fn get_sheet(&self) -> Result<&Worksheet> {
Ok(self.model.workbook.worksheet(self.current_sheet)
.map_err(|s| anyhow!("Invalid Worksheet: {}", s))?)
}
fn get_sheet_mut(&mut self) -> Result<&mut Worksheet> {
Ok(self.model.workbook.worksheet_mut(self.current_sheet)
.map_err(|s| anyhow!("Invalid Worksheet: {}", s))?)
}
}