diff --git a/.~lock.noms.xlsx# b/.~lock.noms.xlsx# new file mode 100644 index 0000000..857faf3 --- /dev/null +++ b/.~lock.noms.xlsx# @@ -0,0 +1 @@ +,sanchezn,pc-sanchezn,05.10.2025 17:16,file:///home/sanchezn/.config/libreoffice/4; \ No newline at end of file diff --git a/noms.xlsx b/noms.xlsx new file mode 100644 index 0000000..c9eb536 Binary files /dev/null and b/noms.xlsx differ diff --git a/src/xlsxtocsv.rs b/src/xlsxtocsv.rs index 070518a..6dd2524 100644 --- a/src/xlsxtocsv.rs +++ b/src/xlsxtocsv.rs @@ -24,7 +24,7 @@ pub fn xlsxtocsv(args: &Arguments) -> Result<(), Error> { let (num_cols, num_rows) = sheet.get_highest_column_and_row(); - for i in 1..=num_rows { + for i in 0..num_rows { if !args.include_hidden_lines { match sheet.get_row_dimension(&i) { Some(dim) => { @@ -35,16 +35,19 @@ pub fn xlsxtocsv(args: &Arguments) -> Result<(), Error> { None => continue, } } - let row = sheet.get_collection_by_row(&i); - let row_len = row.len(); let mut first = true; - for cell in row { + for j in 1..=num_cols { if first { first = false; } else { print!("{}", args.separator); } + let cell = match sheet.get_cell((j, i)) { + Some(cell) => cell, + None => continue, + }; + let cell_coordinate = cell.get_coordinate(); let mut value; if let Some((col, row)) = merged_cells.in_merged_cell( @@ -74,9 +77,6 @@ pub fn xlsxtocsv(args: &Arguments) -> Result<(), Error> { } print!("{}", value); } - for _ in row_len..num_cols as usize { - print!("{}", args.separator); - } println!(""); } @@ -117,7 +117,7 @@ impl MergedCells { if self.fill_horizontal && self.fill_vertical || self.fill_horizontal && row == row_start - || self.fill_vertical && col == col_start + || self.fill_vertical && col == col_start || col == col_start && row == row_start { return Some((col_start, row_start)); diff --git a/xlsxtocsv.exe b/xlsxtocsv.exe index db91d62..88e67c0 100755 Binary files a/xlsxtocsv.exe and b/xlsxtocsv.exe differ