Convertire file txt in xlsx

di il
3 risposte

Convertire file txt in xlsx

Salve a tutti,
sono nuovo e mi scuso se questa è una domanda che è già stata fatta in passato ma ho un problema:
devo convertire un file txt in un file xlsx. Non ho idea di come fare e non sono molto bravo in java....ogni aiuto sarebbe prezioso....grazie in anticipo

3 Risposte

  • Re: Convertire file txt in xlsx

    Gamberonee ha scritto:


    devo convertire un file txt in un file xlsx.
    Per leggere/scrivere file xlsx in java serve una libreria specifica (es Apache POI), che ovviamente va un minimo studiata e compresa.
    Il punto semmai è: come è fatto il txt? Quale charset (set di caratteri) usa? Quali dati contiene? Ogni colonna di dati è a larghezza fissa? O no? Ci sono delimitatori di colonna?

    Insomma, chiarisci il formato del txt.
  • Re: Convertire file txt in xlsx

    È un txt che ho estratto da un pdf con pdftotext sempre usando java, è composto da 2 parti che ho unito, diciamo che la prima parte è a colonne allineate( non tutte larghe uguali però) tipo così:
    02 aaaaaaa 12:30-15:30 4.5 aaaaaaaaa 450
    03 aaaaaaaa 13:30-16:00 3.5 aaaaaa 350
    04 aaa 20:30-23:30 3.0 aaaaaaaa 700
    la seconda parte invecie le colonne sono sfasate.......e in alcune righe ho degli spazi bianchi perchè mancano i dati.
    I dati cambiano sempre a seconda del txt che uso quindi potrebbero esserci file con tutte le righr complete ed altri con dati mancanti....è complicato
    lo so, vorrei postare un esempio ma non posso perchè sono dati sensibili e mi hanno fatto firmare un accordo di segretezza.
    In pratica devo fare un gestionale per la gestione dei collaboratori in access ma il mio capo riceve i dati in pdf quindi quello che devo fare è avere un bottone in access che fa partire il mio java il quale converte il pdf(questo l'ho fatto) poi un secondo bottone che richiama un altro java che estrae dal txt solo le parti che mi interessano(fatto anche questo) e un terzo bottone che mi importa i dati in una tabella access(per questo mi serve convertirlo in xlsx così posso importarlo meglio). Ilm problema è appunto che i dati nono sono sempre incolonnati in modo perfetto.
    Non so propio come andare avanti....
    Spero di essere riuscito a spiegarmi meglio, grazie ancora
  • Re: Convertire file txt in xlsx

    Gamberonee ha scritto:


    è un txt che ho estratto da un pdf con pdftotext sempre usando java, è composto da 2 parti che ho unito, diciamo che la prima parte è a colonne allineate( non tutte larghe uguali però) tipo così:
    02    aaaaaaa     12:30-15:30   4.5   aaaaaaaaa   450
    03    aaaaaaaa   13:30-16:00   3.5   aaaaaa        350
    04    aaa            20:30-23:30   3.0  aaaaaaaa     700
    la seconda parte invecie le colonne sono sfasate.......e in alcune righe ho degli spazi bianchi perchè mancano i dati.
    I dati cambiano sempre a seconda del txt che uso quindi potrebbero esserci file con tutte le righr complete ed altri con dati mancanti....
    Purtroppo, così è molto "critico" e non banale. Il fatto che le colonne siano sfasate tra righe differenti, non è un problema particolare. Potrebbe essere un problema il fatto che per una colonna non ci siano dati (o siano tutti/solo spazi).

    Sicuramente ti direi, ad occhio, che è bene sfruttare le "espressioni regolari". Cerca di delineare (lo puoi sapere/vedere solo tu) il formato ben generalizzato. Ad esempio: il valore in 4° colonna può avere un "-" davanti (valore negativo)? Le colonne dove come esempio hai messo aaaaaa possono contenere spazi (es. "aaa bbb ccc")? Sono tutte cose da considerare! A quel punto si può scrivere una espressione regolare per matchare l'intera riga e catturare le parti di interesse.

    Visto però che come dicevi prima "non sono molto bravo in java", bisogna anche vedere cosa sai sulla gestione delle stringhe, sulle espressioni regolari, ecc...
    La scrittura di un xlsx è una questione meno complessa, la si può vedere anche in un secondo momento (e trovi svariati esempi in rete). Il problema grosso ora, per come la vedo io, è di determinare il formato "generalizzato" di una riga.
Devi accedere o registrarti per scrivere nel forum
3 risposte