ajout du numéro de ligne séquentiel ou tel quel

pull/3/head
Nicolas Sanchez 2 months ago
parent b5391de168
commit 35a5895d01

@ -1 +1 @@
,sanchezn,pc-sanchezn,07.10.2025 21:40,file:///home/sanchezn/.config/libreoffice/4;
,sanchezn,pc-sanchezn,07.10.2025 21:58,file:///home/sanchezn/.config/libreoffice/4;

@ -38,6 +38,23 @@ impl ToString for TrimSpaces {
}
}
#[derive(Clone, Debug, ValueEnum)]
pub enum NumberRows {
AsIs,
Sequential,
None,
}
impl ToString for NumberRows {
fn to_string(&self) -> String {
match self {
NumberRows::AsIs => "as-is".into(),
NumberRows::Sequential => "sequential".into(),
NumberRows::None => "none".into(),
}
}
}
#[derive(Parser, Debug)]
pub struct Arguments {
@ -63,6 +80,6 @@ pub struct Arguments {
#[arg(short, long, default_value_t = TrimSpaces::None)]
pub trim: TrimSpaces,
/// number the rows
#[arg(short, long, default_value_t = false)]
pub number_rows: bool,
#[arg(short, long, default_value_t = NumberRows::None)]
pub number_rows: NumberRows,
}

@ -1,7 +1,7 @@
use std::path::Path;
use umya_spreadsheet::{Range, Worksheet, reader};
use crate::arguments::{Arguments, TrimSpaces};
use crate::arguments::{Arguments, NumberRows, TrimSpaces};
use crate::error::Error;
pub fn xlsxtocsv(args: &Arguments) -> Result<(), Error> {
@ -65,7 +65,9 @@ pub fn xlsxtocsv(args: &Arguments) -> Result<(), Error> {
// TODO get every hidden columns
// for each row...
let mut seq_row_num = 0;
for i in 1..=num_rows {
// Avoid hidden rows if asked for
if !args.include_hidden_rows {
match sheet.get_row_dimension(&i) {
@ -75,9 +77,8 @@ pub fn xlsxtocsv(args: &Arguments) -> Result<(), Error> {
}
}
None => {
if args.number_rows {
print!("{}{}", i, args.separator);
}
seq_row_num += 1;
number_row(&args.number_rows, args.separator, seq_row_num, i);
println!("{}", empty_row);
continue;
}
@ -85,9 +86,8 @@ pub fn xlsxtocsv(args: &Arguments) -> Result<(), Error> {
}
// number the row
if args.number_rows {
print!("{}{}", i, args.separator);
}
seq_row_num += 1;
number_row(&args.number_rows, args.separator, seq_row_num, i);
// for each column in row...
let mut first = true;
@ -147,6 +147,14 @@ pub fn xlsxtocsv(args: &Arguments) -> Result<(), Error> {
Ok(())
}
fn number_row(number_row: &NumberRows, separator: char, seqrownum: u32, i: u32) {
match number_row {
NumberRows::AsIs => print!("{}{}", i, separator),
NumberRows::Sequential => print!("{}{}", seqrownum, separator),
NumberRows::None => {},
}
}
struct MergedCells {
merged_cells: Vec<Range>,
fill_horizontal: bool,

Binary file not shown.
Loading…
Cancel
Save