use excel_reader::{
excel::Excel, processed::spreadsheet::sheet::worksheet::cell::cell_value::CellValueType,
};
fn main() -> anyhow::Result<()> {
let path = "examples/sample.xlsx";
let mut excel = Excel::from_path(path)?;
let sheets = excel.get_sheets()?;
if sheets.is_empty() {
println!("Excel contains no sheets");
return Ok(());
}
println!("sheets: ");
for sheet in sheets.clone() {
println!("--------");
println!("id: {}", sheet.sheet_id);
println!("name: {}", sheet.name);
println!("type: {:?}", sheet.r#type);
println!("visiblity: {:?}", sheet.visible_state);
}
println!("--------");
println!("--------");
let worksheet = excel.get_worksheet(&sheets[0].clone())?;
println!("worksheet: {}", worksheet.name);
println!("dimension: {:?}", worksheet.dimension);
println!(
"Use 1904 backward compatibility date system: {:?}",
worksheet.is_1904
);
println!(
"Calculation reference: {:?}",
worksheet.calculation_reference_mode
);
if !worksheet.clone().merged_cells.is_empty() {
println!("merged cells: ");
for (index, merged_cell) in worksheet.clone().merged_cells.iter().enumerate() {
println!("{}: {:?}", index + 1, merged_cell);
}
}
if !worksheet.clone().tables.is_empty() {
println!("tables: ");
for (index, table) in worksheet.clone().tables.iter().enumerate() {
println!("--------");
println!("{}: {:?}", index + 1, table.display_name);
println!("dimension: {:?}", table.dimension);
println!("columns: {:?}", table.columns);
println!("table style: {:?}", table.table_style.name);
}
println!("--------");
}
let cells = worksheet.get_cells()?;
for cell in cells {
println!("--------");
println!("coordinate: {:?}", cell.coordinate);
println!("value {:?}.", cell.value);
if let CellValueType::Numeric(_) = cell.value {
println!(
"Numeric format: {:?}",
cell.property.numbering_format.format_code
)
}
let properties = cell.property;
println!("size: {} * {}", properties.width, properties.height);
println!("hidden : {:?}", properties.hidden);
println!("show_phonetic : {:?}", properties.show_phonetic);
println!("hyperlink : {:?}", properties.hyperlink);
println!("font : {:?}", properties.font);
println!("border : {:?}", properties.border);
println!("fill : {:?}", properties.fill);
println!("alignment : {:?}", properties.alignment);
}
Ok(())
}