Struct calamine::RangeDeserializerBuilder[][src]

pub struct RangeDeserializerBuilder { /* fields omitted */ }

Builds a Range deserializer with some configuration options.

This can be used to optionally parse the first row as a header. Once built, a RangeDeserializers cannot be changed.

Methods

impl RangeDeserializerBuilder
[src]

Constructs a new builder for configuring Range deserialization.

Build a RangeDeserializer from this configuration.

Example

fn example() -> Result<(), Error> {
    let path = format!("{}/tests/tempurature.xlsx", env!("CARGO_MANIFEST_DIR"));
    let mut workbook: Xlsx<_> = open_workbook(path)?;
    let range = workbook.worksheet_range("Sheet1")
        .ok_or(Error::Msg("Cannot find 'Sheet1'"))??;
    let mut iter = RangeDeserializerBuilder::new().from_range(&range)?;

    if let Some(result) = iter.next() {
        let (label, value): (String, f64) = result?;
        assert_eq!(label, "celcius");
        assert_eq!(value, 22.2222);

        Ok(())
    } else {
        return Err(From::from("expected at least one record but got none"));
    }
}

Decide whether to treat the first row as a special header row.

Example

fn example() -> Result<(), Error> {
    let path = format!("{}/tests/tempurature.xlsx", env!("CARGO_MANIFEST_DIR"));
    let mut workbook: Xlsx<_> = open_workbook(path)?;
    let range = workbook.worksheet_range("Sheet1")
        .ok_or(Error::Msg("Cannot find 'Sheet1'"))??;

    let mut iter = RangeDeserializerBuilder::new()
        .has_headers(false)
        .from_range(&range)?;

    if let Some(result) = iter.next() {
        let row: Vec<DataType> = result?;
        assert_eq!(row, [DataType::from("label"), DataType::from("value")]);
    } else {
        return Err(From::from("expected at least three records but got none"));
    }

    if let Some(result) = iter.next() {
        let row: Vec<DataType> = result?;
        assert_eq!(row, [DataType::from("celcius"), DataType::from(22.2222)]);
    } else {
        return Err(From::from("expected at least three records but got one"));
    }

    Ok(())
}

Trait Implementations

impl Clone for RangeDeserializerBuilder
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl Default for RangeDeserializerBuilder
[src]

Returns the "default value" for a type. Read more

Auto Trait Implementations