pub trait Reader<RS>: Sized{
type Error: Debug + From<Error>;
// Required methods
fn new(reader: RS) -> Result<Self, Self::Error>;
fn with_header_row(&mut self, header_row: HeaderRow) -> &mut Self;
fn vba_project(
&mut self,
) -> Option<Result<Cow<'_, VbaProject>, Self::Error>>;
fn metadata(&self) -> &Metadata;
fn worksheet_range(
&mut self,
name: &str,
) -> Result<Range<Data>, Self::Error>;
fn worksheets(&mut self) -> Vec<(String, Range<Data>)>;
fn worksheet_formula(
&mut self,
_: &str,
) -> Result<Range<String>, Self::Error>;
// Provided methods
fn sheet_names(&self) -> Vec<String> { ... }
fn sheets_metadata(&self) -> &[Sheet] { ... }
fn defined_names(&self) -> &[(String, String)] { ... }
fn worksheet_range_at(
&mut self,
n: usize,
) -> Option<Result<Range<Data>, Self::Error>> { ... }
}
Expand description
A trait to share spreadsheets reader functions across different FileType
s
Required Associated Types§
Required Methods§
Sourcefn with_header_row(&mut self, header_row: HeaderRow) -> &mut Self
fn with_header_row(&mut self, header_row: HeaderRow) -> &mut Self
Set header row (i.e. first row to be read)
If header_row
is None
, the first non-empty row will be used as header row
Sourcefn vba_project(&mut self) -> Option<Result<Cow<'_, VbaProject>, Self::Error>>
fn vba_project(&mut self) -> Option<Result<Cow<'_, VbaProject>, Self::Error>>
Gets VbaProject
Provided Methods§
Sourcefn sheet_names(&self) -> Vec<String>
fn sheet_names(&self) -> Vec<String>
Get all sheet names of this workbook, in workbook order
§Examples
use calamine::{Xlsx, open_workbook, Reader};
let mut workbook: Xlsx<_> = open_workbook(path).unwrap();
println!("Sheets: {:#?}", workbook.sheet_names());
Sourcefn sheets_metadata(&self) -> &[Sheet]
fn sheets_metadata(&self) -> &[Sheet]
Fetch all sheets metadata
Sourcefn defined_names(&self) -> &[(String, String)]
fn defined_names(&self) -> &[(String, String)]
Get all defined names (Ranges names etc)
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.