diff --git a/src/cli.rs b/src/cli.rs index 1f9bddd..e1cd97d 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -93,6 +93,8 @@ pub enum SubCommand { year: String, #[arg(long, value_parser = value_is_date, help = "Ignoriere LKR-Exporte seit Datum")] ignore_exports_since: Option, + #[arg(long, help = "Export mit Trennzeichen ';' für Excel")] + xls_csv: bool, }, #[command(about = "Abgleich zwischen CSV-Datei für OPAL und Onkostar-Datenbank")] Compare { diff --git a/src/main.rs b/src/main.rs index a52d2cd..b28874c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -23,7 +23,7 @@ use std::path::Path; use clap::Parser; use console::{style, Term}; -use csv::Writer; +use csv::WriterBuilder; use itertools::Itertools; use crate::cli::{Cli, SubCommand}; @@ -134,6 +134,7 @@ fn main() -> Result<(), Box> { output, year, ignore_exports_since, + xls_csv } => { let password = request_password_if_none(password); let year = sanitize_year(year); @@ -155,7 +156,12 @@ fn main() -> Result<(), Box> { let _ = term.clear_last_lines(1); - let mut writer = Writer::from_path(Path::new(&output)).expect("writeable file"); + let writer_builder = &mut WriterBuilder::new(); + let mut writer_builder = writer_builder.has_headers(true); + if xls_csv { + writer_builder = writer_builder.delimiter(b';'); + } + let mut writer = writer_builder.from_path(Path::new(&output)).expect("writeable file"); items .iter()