diff options
Diffstat (limited to 'src/sheet/loader/native')
| -rw-r--r-- | src/sheet/loader/native/csv.rs | 19 | ||||
| -rw-r--r-- | src/sheet/loader/native/mod.rs | 2 |
2 files changed, 21 insertions, 0 deletions
diff --git a/src/sheet/loader/native/csv.rs b/src/sheet/loader/native/csv.rs new file mode 100644 index 0000000..4a8f05d --- /dev/null +++ b/src/sheet/loader/native/csv.rs @@ -0,0 +1,19 @@ +use std::{fs::File, io::BufReader}; + +use crate::sheet::{cell::Cell, tablized::Tablized}; + +pub fn load_csv(path: String) -> Tablized { + let file = File::open(path).unwrap(); + let reader = BufReader::new(file); + let mut csv_reader = csv::Reader::from_reader(reader); + + let mut table = Vec::new(); + + for result in csv_reader.records() { + if let Ok(record) = result { + table.push(record.iter().map(|s| Cell::from(s)).collect::<Vec<Cell>>()) + } + } + + Tablized::Vector(table) +} diff --git a/src/sheet/loader/native/mod.rs b/src/sheet/loader/native/mod.rs new file mode 100644 index 0000000..41ec797 --- /dev/null +++ b/src/sheet/loader/native/mod.rs @@ -0,0 +1,2 @@ + +pub mod csv; |