Создавать.csv-файл на C++ в qt
Я хочу создать csv-файл с помощью c++, используя Qt для приложений и UI framework. Есть библиотека для csv-файла.
3 ответов
вы могли бы в основном заглянуть в libqxt.
Использование QxtCsvModel
QxtCsvModel [libqxt.bitbucket.org] класс предоставляет QAbstractTableModel [qt-project.org] для CSV-файлов. Это, пожалуй, самый простой способ чтения и записи csv-файлов без необходимости разбора формата csv на то, что qt может понять. Это так же просто, как использовать одну строку кода, например, следующее читает файл csv:
csvmodel->setSource(fileName);
попробовать qtcsv библиотека для чтения и записи CSV-файлов. Пример:
#include <QList>
#include <QStringList>
#include <QDir>
#include <QDebug>
#include "qtcsv/stringdata.h"
#include "qtcsv/reader.h"
#include "qtcsv/writer.h"
int main()
{
// prepare data that you want to save to csv-file
QStringList strList;
strList << "one" << "two" << "three";
QtCSV::StringData strData;
strData.addRow(strList);
strData.addEmptyRow();
strData << strList << "this is the last row";
// write to file
QString filePath = QDir::currentPath() + "/test.csv";
QtCSV::Writer::write(filePath, strData);
// read data from file
QList<QStringList> readData = QtCSV::Reader::readToList(filePath);
for ( int i = 0; i < readData.size(); ++i )
{
qDebug() << readData.at(i).join(",");
}
return 0;
}
Я попытался сделать его маленьким и простым в использовании. См.Readme файл для документации библиотеки и других примеров кода.
просто писать CSV? Хотя google может раскрыть некоторые библиотеки CSV, вероятная причина, почему вы не нашли ни одного, потому что это так чертовски тривиально. Помните, что CSV - это просто значения, разделенные запятыми.
для его реализации используйте любые средства для записи текстового файла (std:: ofstream, QFile, QTextStream) и сделайте что-то вроде:
foreach record
{
foreach value in record
{
write "\"" + escape(value) + "\""
if not last value in record
{
write ","
}
}
write "\n"
}
escape (value)
{
replace each "\"" with "\"\""
}
обратите внимание, что вы можете писать значения без кавычек, если они не содержат разделителей (,). Также обратите внимание, что вы можете использовать разные обычно используются разделители, например, двоеточие.