#![allow(clippy::unwrap_used)] use crate::expressions::types::CellReferenceIndex; use crate::model::Model; use crate::types::Cell; pub fn new_empty_model() -> Model { Model::new_empty("model", "en", "UTC").unwrap() } impl Model { pub fn _parse_reference(&self, cell: &str) -> CellReferenceIndex { if cell.contains('!') { self.parse_reference(cell).unwrap() } else { self.parse_reference(&format!("Sheet1!{}", cell)).unwrap() } } pub fn _set(&mut self, cell: &str, value: &str) { let cell_reference = self._parse_reference(cell); let column = cell_reference.column; let row = cell_reference.row; self.set_user_input(cell_reference.sheet, row, column, value.to_string()) .unwrap(); } pub fn _has_formula(&self, cell: &str) -> bool { self._get_formula_opt(cell).is_some() } pub fn _get_formula(&self, cell: &str) -> String { self._get_formula_opt(cell).unwrap_or_default() } fn _get_formula_opt(&self, cell: &str) -> Option { let cell_reference = self._parse_reference(cell); let column = cell_reference.column; let row = cell_reference.row; self.get_cell_formula(cell_reference.sheet, row, column) .unwrap() } pub fn _get_text_at(&self, sheet: u32, row: i32, column: i32) -> String { self.get_formatted_cell_value(sheet, row, column).unwrap() } pub fn _get_text(&self, cell: &str) -> String { let CellReferenceIndex { sheet, row, column } = self._parse_reference(cell); self._get_text_at(sheet, row, column) } pub fn _get_cell(&self, cell: &str) -> &Cell { let cell_reference = self._parse_reference(cell); let worksheet = self.workbook.worksheet(cell_reference.sheet).unwrap(); worksheet .cell(cell_reference.row, cell_reference.column) .unwrap() } }