8 #include <QAbstractItemModel>
10 #include <QTextStream>
13 filename(filename), model(0)
32 static void writeValue(QTextStream& f,
const QString& value)
34 QString escaped = value;
35 escaped.replace(
'"',
"\"\"");
36 f <<
"\"" << escaped <<
"\"";
39 static void writeSep(QTextStream& f)
44 static void writeNewline(QTextStream& f)
52 if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
54 QTextStream out(&file);
58 numRows =
model->rowCount();
62 for (
int i = 0; i <
columns.size(); ++i) {
66 writeValue(out,
columns[i].title);
71 for (
int j = 0; j < numRows; ++j) {
72 for (
int i = 0; i <
columns.size(); ++i) {
77 writeValue(out, data.toString());
84 return file.error() == QFile::NoError;
CSVModelWriter(const QString &filename, QObject *parent=0)
bool write()
Perform export of the model to CSV.
void setModel(const QAbstractItemModel *model)
void addColumn(const QString &title, int column, int role=Qt::EditRole)
const QAbstractItemModel * model