Trait calamine::Reader

source ·
pub trait Reader<RS>: Sizedwhere
    RS: Read + Seek,{
    type Error: Debug + From<Error>;

    // Required methods
    fn new(reader: RS) -> Result<Self, Self::Error>;
    fn vba_project(
        &mut self
    ) -> Option<Result<Cow<'_, VbaProject>, Self::Error>>;
    fn metadata(&self) -> &Metadata;
    fn worksheet_range(
        &mut self,
        name: &str
    ) -> Option<Result<Range<DataType>, Self::Error>>;
    fn worksheets(&mut self) -> Vec<(String, Range<DataType>)>;
    fn worksheet_formula(
        &mut self,
        _: &str
    ) -> Option<Result<Range<String>, Self::Error>>;

    // Provided methods
    fn sheet_names(&self) -> &[String] { ... }
    fn defined_names(&self) -> &[(String, String)] { ... }
    fn worksheet_range_at(
        &mut self,
        n: usize
    ) -> Option<Result<Range<DataType>, Self::Error>> { ... }
}
Expand description

A trait to share spreadsheets reader functions across different FileTypes

Required Associated Types§

source

type Error: Debug + From<Error>

Error specific to file type

Required Methods§

source

fn new(reader: RS) -> Result<Self, Self::Error>

Creates a new instance.

source

fn vba_project(&mut self) -> Option<Result<Cow<'_, VbaProject>, Self::Error>>

Gets VbaProject

source

fn metadata(&self) -> &Metadata

Initialize

source

fn worksheet_range( &mut self, name: &str ) -> Option<Result<Range<DataType>, Self::Error>>

Read worksheet data in corresponding worksheet path

source

fn worksheets(&mut self) -> Vec<(String, Range<DataType>)>

Fetch all worksheet data & paths

source

fn worksheet_formula( &mut self, _: &str ) -> Option<Result<Range<String>, Self::Error>>

Read worksheet formula in corresponding worksheet path

Provided Methods§

source

fn sheet_names(&self) -> &[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());
source

fn defined_names(&self) -> &[(String, String)]

Get all defined names (Ranges names etc)

source

fn worksheet_range_at( &mut self, n: usize ) -> Option<Result<Range<DataType>, Self::Error>>

Get the nth worksheet. Shortcut for getting the nth sheet_name, then the corresponding worksheet.

Implementors§

source§

impl<RS> Reader<RS> for Sheets<RS>where RS: Read + Seek,

§

type Error = Error

source§

impl<RS> Reader<RS> for Ods<RS>where RS: Read + Seek,

source§

impl<RS: Read + Seek> Reader<RS> for Xls<RS>

source§

impl<RS: Read + Seek> Reader<RS> for Xlsb<RS>

source§

impl<RS: Read + Seek> Reader<RS> for Xlsx<RS>