From 17ca28a6e1971f7820eef541be41ca23870f4908 Mon Sep 17 00:00:00 2001 From: Nicolas Sanchez Date: Tue, 7 Oct 2025 22:22:34 +0200 Subject: [PATCH] ajout de la liste des worksheets --- src/arguments.rs | 3 +++ src/xlsxtocsv.rs | 13 +++++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/arguments.rs b/src/arguments.rs index 34aac97..0248d49 100644 --- a/src/arguments.rs +++ b/src/arguments.rs @@ -61,6 +61,9 @@ pub struct Arguments { /// Path to the xlsx file #[arg()] pub file: String, + /// List all worksheets + #[arg(short, long)] + pub list_worksheets: bool, /// Separator #[arg(short, long, default_value_t = ';')] pub separator: char, diff --git a/src/xlsxtocsv.rs b/src/xlsxtocsv.rs index 97ed067..bf78c2e 100644 --- a/src/xlsxtocsv.rs +++ b/src/xlsxtocsv.rs @@ -8,6 +8,19 @@ pub fn xlsxtocsv(args: &Arguments) -> Result<(), Error> { let book = reader::xlsx::read(Path::new(&args.file)) .expect(format!("Can't open {}", args.file).as_str()); + if args.list_worksheets { + + println!("Liste of worksheets :"); + let mut i = 0; + let sheets = book.get_sheet_collection(); + for sheet in sheets { + println!(" {:3}: {}", i, sheet.get_name()); + i += 1; + } + + return Ok(()); + } + // get the sheet from name or number if specified, else the first of the spreadsheet let sheet = match book.get_sheet_by_name(&args.worksheet) { Some(sheet) => sheet,