La mia esigenza era quella di riempire una QTableWidget usando un file CSV.

Postare tutto il codice è un pò complicato, quindi vi posterò solo ciò che serve.

Dalla descrizione, sembra che unoconv faccia parte della suite LibreOffice.

Comunque dovrebbe essere disponibile in tutti i repo, quindi potete installarlo facilmente.

Questo programma permette di convertire da XLS / XLSX a CSV e viceversa.

Il JSON ormai è una delle strutture più usate in circolazione, ma il CSV rimane comunque molto utilizzato per molti scopi.

Quindi vediamo come trasformare una stringa JSON in CSV usando Java.

Ci avvarremo anche di due librerie; se usate Maven:

        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20160810</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.5</version>
        </dependency>

Da un web service scritto in Node.js, ottengo tutta una serie di dati in formato JSON.

Ma ho la necessità di convertire quei dati in formato CSV, per poi darli in pasto ad un altro sistema.

La cosa è abbastanza semplice, in quanto c'è un modulo apposito: json2csv!

Aggiungetelo tra le dipendenze del vostro progetto nel file package.json:

{
    "name": "NodeB2B", "version": "1.0.0", "keywords": ["util", "functional", "server", "client", "browser"], "author": "Mattepuffo", "contributors": [], "dependencies": {
        "json2csv": "*"
    }
}

Questo è il mio completo.

Oggi vediamo un semplice metodo per esportare una QTableWidget in CSV.

Sarà un esempio basico, nel senso che ci limiteremo a buttare dentro dati estratti, senza nessun tipo di formattazione.

Io mi sono creato una classe apposita (SaveTable) che in input si prende il path di salvataggio del file, e la QTableWidget de leggere.

Questo il file di intestazione:

#ifndef SAVETABLE_H
#define SAVETABLE_H

#include <QObject>
#include <QTableWidget>
#include <QFile>
#include <QDir>
#include <QTextStream>

class SaveTable {
public:
    SaveTable(QString strFile, QTableWidget *tbl);
    virtual ~SaveTable();
};

#endif // SAVETABLE_H

Abbiamo solo il costruttore, dove andremo a svolgere le operazioni.