Compare commits

...

4 Commits

@ -1,3 +1,4 @@
use std::io::{BufWriter, Write, stdout};
use std::path::Path;
use umya_spreadsheet::{Cell, Range, Worksheet, reader};
@ -101,6 +102,9 @@ pub fn xlsxtocsv(args: &Arguments) -> Result<(), Error> {
return Err(Error::new("Number of rows < number of rows to skip"));
}
let stdout = stdout();
let mut writer = BufWriter::new(stdout.lock());
// for each row...
let mut seq_row_num = 0;
for i in (args.skip_rows+1)..=num_rows {
@ -114,16 +118,18 @@ pub fn xlsxtocsv(args: &Arguments) -> Result<(), Error> {
}
None => {
seq_row_num += 1;
number_row(&args.number_rows, args.separator, seq_row_num, i);
print!("{}", empty_row);
writer.write(number_row(&args.number_rows, args.separator, seq_row_num, i).as_bytes()).unwrap();
writer.write(empty_row.as_bytes()).unwrap();
continue;
}
}
}
let mut line = String::from("");
// number the row
seq_row_num += 1;
number_row(&args.number_rows, args.separator, seq_row_num, i);
line += number_row(&args.number_rows, args.separator, seq_row_num, i).as_str();
// for each column in row...
let mut first = true;
@ -135,7 +141,7 @@ pub fn xlsxtocsv(args: &Arguments) -> Result<(), Error> {
if first {
first = false;
} else {
print!("{}", args.separator);
line.push(args.separator);
}
let cell = match sheet.get_cell((j, i)) {
@ -192,19 +198,20 @@ pub fn xlsxtocsv(args: &Arguments) -> Result<(), Error> {
));
}
}
print!("{}", value);
line += value.as_str();
}
print!("{}", args.end_of_line);
line += args.end_of_line.as_str();
writer.write(line.as_bytes()).unwrap();
}
Ok(())
}
fn number_row(number_row: &NumberRows, separator: char, seqrownum: u32, i: u32) {
fn number_row(number_row: &NumberRows, separator: char, seqrownum: u32, i: u32) -> String {
match number_row {
NumberRows::AsIs => print!("{}{}", i, separator),
NumberRows::Sequential => print!("{}{}", seqrownum, separator),
NumberRows::None => {}
NumberRows::AsIs => format!("{}{}", i, separator),
NumberRows::Sequential => format!("{}{}", seqrownum, separator),
NumberRows::None => String::from(""),
}
}

Binary file not shown.

Binary file not shown.
Loading…
Cancel
Save