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 RangeDeserializer
s cannot be changed.
Constructs a new builder for configuring Range
deserialization.
Build a RangeDeserializer
from this configuration.
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.
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(())
}
Performs copy-assignment from source
. Read more
Returns the "default value" for a type. Read more