#![allow(clippy::unwrap_used)]
use crate::expressions::types::CellReferenceIndex;
use crate::model::Model;
use crate::types::Cell;
pub fn new_empty_model<'a>() -> Model<'a> {
Model::new_empty("model", "en", "UTC", "en").unwrap()
}
impl<'a> Model<'a> {
pub fn _parse_reference(&self, cell: &str) -> CellReferenceIndex {
if cell.contains('!') {
self.parse_reference(cell).unwrap()
} else {
let sheet_name = self.get_worksheets_properties()[0].name.clone();
self.parse_reference(&format!("{sheet_name}!{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<String> {
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()
}
}