rsv_lib/excel/
excel2csv.rs

1use crate::{
2    args::Excel2csv,
3    utils::{cli_result::CliResult, reader::ExcelReader, util::werr_exit, writer::Writer},
4};
5
6impl Excel2csv {
7    pub fn excel_run(&self) -> CliResult {
8        if self.filename.is_none() {
9            werr_exit!("Please provide a file path.");
10        }
11        let path = &self.path();
12
13        // new file
14        let out = path.with_extension("csv");
15
16        // open files
17        let range = ExcelReader::new(path, self.sheet)?;
18        let mut wtr = Writer::new(&out)?;
19
20        // const
21        let sep = [self.sep as u8];
22
23        // excel2csv
24        for r in range.iter() {
25            wtr.write_excel_line(r, &sep)?;
26        }
27
28        println!("Saved to file: {}", out.display());
29
30        Ok(())
31    }
32}