Problemi Esportazione in Excel con CsvHelper.Excel

di il
5 risposte

Problemi Esportazione in Excel con CsvHelper.Excel

Gentili,
sto tentando di esportare in un file Excel utilizzando la libreria CsvHelper.Excel, qualcuno ha avuto modo di usarla?
Siccome l'opzione di salvataggio la dovrò creare per più tabelle diverse, per rendere la classe più generale possibile sto provando a passare una List<T> al metodo che mi crea il file e come prova ho questa classe:

    public class Persona
    {
        public string Cognome { get; set; }
        public string Nome { get; set; }
        public double Credito { get; set; }
        public double Debito { get; set; }
        public DateTime Data { get; set; }
    }   
Il problema riguarda i valori numerici con virgola e le date.
Se:
1) Non imposto la proprietà CultureInfo oppure la imposto a "it-IT" dell'oggetto CsvWriter i valori con la virgola mi vengono racchiusi tra le virgolette come stringhe e le date vengono riconosciute correttamente;
Cognome Nome Credito Debito Data
Doe John J. "12400,25" "-13450,34" 20/03/2020 04:44
2) Se imposto invece la proprietà CultureInfo a InvariantCulture i valori vengono salvati correttamente ma le date come stringhe
Cognome Nome Credito Debito Data
Doe John J. 12400,25 -13450,34 03/20/2020 04:49:57
NB: la data nella cella è vista come stringa e non data/valore

3) Se imposto invece la proprietà CultureInfo a "en-US" i valori vengono salvati correttamente ma le date come stringhe, questa volta con il suffisso AM/PM
Cognome Nome Credito Debito Data
Doe John J. 12400,25 -13450,34 3/20/2020 4:54:49 AM
Non riesco a trovare altre opzioni di configurazione, sicuramente sto dimenticando qualcosa di semplice ma non riesco a capire cosa, anche perché CsvHelper.Excel utilizza una libreria vecchia di CsvHelper.

Eventualmente che libreria potrei usare per esportare in Excel, magari gratuita e indipendente dalla presenza di Office?

Grazie a chiunque mi risponderà.

Lucius

5 Risposte

  • Re: Problemi Esportazione in Excel con CsvHelper.Excel

    Dovresti impostare il ; come carattere separatore e non la , quindi impostare IT
  • Re: Problemi Esportazione in Excel con CsvHelper.Excel

    Grazie mille per la risposta, in effetti dimenticavo questa opzione.
    Seguendo i tuoi consigli adesso:
    1) Le date vengono esportate correttamente come valore/data allineate a destra;
    Mentre i valori numerici:
    2) Il valore intero viene esportato come valore numerico corretto (allineato a destra);
    3) Il valore con virgola viene inserito correttamente con la virgola però è allineato a sx e compare il triangolino verde sulla cella di excel con l'avvertenza "numero memorizzato come testo".



    Per effettuare la prova i 2 double li passo manualmente 12400 e -13450.34 non penso dipenda da questo la causa del problema.

    Mi manca quest'ultimo passaggio.

    Lucius.
  • Re: Problemi Esportazione in Excel con CsvHelper.Excel

    A me non succede. Hai Excel su Windows italiano o inglese?

    Posta un link per scaricare il .csv che hai utilizzato
  • Re: Problemi Esportazione in Excel con CsvHelper.Excel

    Ho tutto in italiano: Windows, Excel e Visual Studio.
    Colpa mia non aver allegato subito il listato, in pratica sto facendo delle prove, creo una list dalla classe e la passo al writer, non creo il csv ma salvo direttamente in formato .xlsx.

    Grazie mille per la tua disponibilità.
    Lucius
  • Re: Problemi Esportazione in Excel con CsvHelper.Excel

    Ciao,
    ad integrazione, ho provato adesso con il solo CsvHelper ed effettivamente salvando in Csv non mi dà nessun errore, il csv viene creato normalmente senza problemi.
    Non riesco a fare l'ultimo step per implementare anche il salvataggio direttamente in xlsx, intanto implementerò il solo csv.
    Lucius
Devi accedere o registrarti per scrivere nel forum
5 risposte