Qt数据库导出为csv文件
·
Qt从数据库导出到csv文件
技术优势
相比较于导出到excel文件,导出为csv代码更简洁,使用更简单,执行效率更高,且更为稳定。
导出到excel文件还需要引入axcontainer模块,且需要在计算机中安装office软件,在Linux系统中并不适用。因此仅作为数据备份时导出为csv更佳。
Database->csv
QFile csvfile(filepath);
csvfile.open(QIODevice::WriteOnly | QIODevice::Text);
QTextStream out(&csvfile);
out<<tr("数据1,")<<tr("数据2,")<<("数据3\n");
out<<tr("value1,")<<tr("value2,")<<tr("value3\n");
//含中文字符的要用tr包裹,否则乱码,元素(单元格)之间用逗号分隔,用\n换行
csvfile.flush();
csvfile.close();
在Linux系统中运行以上代码,生成的csv文件放到windows系统中直接用excel打开会显示乱码,但是直接以文本方式打开显示正常,在记事本中将其另存为ANSI编码后再用excel打开则显示正常。这是犹豫默认保存为utf-8编码引起的,所以若在Linux环境下运行需要在QTextStream out(&csvfile);后添加out.setCodec(QTextCodec::codecForName("GBK"));
csv->Database
QFile csvfile(filepath);
csvfile.open(QIODevice::ReadOnly | QIODevice::Text);
QTextStream in(&csvfile);
while(!in.atEnd()){
QString str = in.readLine();
str.remove("\n");
QStringList lst = str.split(",");
qry.bindValue(0,lst.at(0));
...
}
csvfile.close();
更多推荐


所有评论(0)