QT测试数据记录(csv格式文件保存excel样式的数据)

      最近在做的项目,因为要做测试数据记录,以便使用miniTab软件统计分析,那么我们常见的数据记录,可能有txt、excel、数据库,但是txt记录的数据不方便复制到minitab上,数据库方式又有点大材小用的感觉,所以只剩下excel表格方式了,但是有一点不好的就是需要重复打开微软的office软件,引入不稳定因素的同时,实测保存的速度又比较慢。于是把这三种方式都给否定了,最后查资料得知可以使用.csv格式的文件保存数据,QT操作就跟操作txt文档一样简单方便,只要数据已逗号“,”分开,那么用excel打开,排布就跟保存excel的格式一模一样,很方便的进行整行整列的复制、分析,下边我们就来直接贴代码:

#include <QtWidgets/QApplication>
#include <QDate>
#include <QTextStream>
#include <QFile>
#include <QString>

void SaveTestResultToCSVFile()
{
	//保存数据的文件路径
	QString  csvFileName = QApplication::applicationDirPath() + "/TestData/" + \
						   QDateTime::currentDateTime().toString("yyyyMMdd") + ".csv";
	QFile file(csvFileName);
	if (!file.exists())		//文件不存在的时候便新建,以当天日期为命名
	{
		file.open(QIODevice::WriteOnly);
		QTextStream txtOutPut(&file);
		txtOutPut << "Unit(mm)\n";
		txtOutPut << "Time,Data1,Data2,Data3,Data4\n";	//注意,每行数据结束后要加换行符
		file.close();
	}

	file.open(QIODevice::WriteOnly|QIODevice::Append);
	QTextStream txtOutPut(&file);

	QString msg = QDateTime::currentDateTime().toString("hh:mm:ss") + "," \
				+ "12.12" + ","\
				+ "13.25" + ","\
				+ "14.59" + ","\
				+ "45.32" + "\n";	//这里只是模拟数据,具体数据做相对改动即可

	txtOutPut << msg;
	file.flush();
	file.close();
}

int main(int argc, char *argv[])
{
	QApplication a(argc, argv);

	//做个简单的循环,模拟保存几组数据
	for (int i=0; i<5; i++)
	{
		SaveTestResultToCSVFile();
	}

	return a.exec();
}

编译运行后,我们到TestData文件夹下找到保存的.csv文件,使用excel表格打开,如下,是不是比直接操作excel要方便的多,而且写的速度还很快,跟操作txt文件是一样一样的。

猜你喜欢

转载自blog.csdn.net/lms1008611/article/details/81271055