Crate calamine [−] [src]
Rust Excel reader
Status
calamine is a pure Rust library to read any excel file (xls
, xlsx
, xlsm
, xlsb
).
Read both cell values and vba project.
Examples
use calamine::{Excel, DataType}; // opens a new workbook let mut workbook = Excel::open(path).expect("Cannot open file"); // Read whole worksheet data and provide some statistics if let Ok(range) = workbook.worksheet_range("Sheet1") { let total_cells = range.get_size().0 * range.get_size().1; let non_empty_cells: usize = range.used_cells().count(); println!("Found {} cells in 'Sheet1', including {} non empty cells", total_cells, non_empty_cells); // alternatively, we can manually filter rows assert_eq!(non_empty_cells, range.rows() .flat_map(|r| r.iter().filter(|&c| c != &DataType::Empty)).count()); } // Check if the workbook has a vba project if workbook.has_vba() { let mut vba = workbook.vba_project().expect("Cannot find VbaProject"); let vba = vba.to_mut(); let module1 = vba.get_module("Module 1").unwrap(); println!("Module 1 code:"); println!("{}", module1); for r in vba.get_references() { if r.is_missing() { println!("Reference {} is broken or not accessible", r.name); } } }
Modules
vba |
Parse vbaProject.bin file |
Structs
Cell |
A struct to hold cell position and value |
Error |
The Error type. |
Excel |
A wrapper struct over the Excel file |
Range |
A struct which represents a squared selection of cells |
Rows |
An iterator to read |
UsedCells |
A struct to iterate over used cells |
Enums
CellErrorType |
An enum to represent all different excel errors that can appear as a value in a worksheet cell |
DataType |
An enum to represent all different excel data types that can appear as a value in a worksheet cell |
ErrorKind |
The kind of an error. |
Traits
ExcelReader |
A trait to share excel reader functions accross different |
ResultExt |
Additional methods for |
Type Definitions
Result |
Convenient wrapper around |