首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何遍历QSqlTableModel并导出到.csv

遍历QSqlTableModel并导出到.csv可以通过以下步骤实现:

  1. 创建一个QSqlTableModel对象,并设置需要查询的表名和数据库连接。
代码语言:txt
复制
QSqlTableModel model;
model.setTable("your_table_name");
model.setDatabase(QSqlDatabase::database("your_connection_name"));
  1. 执行查询并加载数据到模型中。
代码语言:txt
复制
model.select();
  1. 创建一个QFile对象,用于保存导出的.csv文件。
代码语言:txt
复制
QFile file("output.csv");
if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
    QTextStream stream(&file);
  1. 遍历模型中的数据,并将每一行的数据写入到.csv文件中。
代码语言:txt
复制
    // 写入表头
    for (int i = 0; i < model.columnCount(); i++) {
        stream << model.headerData(i, Qt::Horizontal).toString();
        if (i < model.columnCount() - 1)
            stream << ",";
    }
    stream << "\n";

    // 写入数据
    for (int row = 0; row < model.rowCount(); row++) {
        for (int col = 0; col < model.columnCount(); col++) {
            stream << model.data(model.index(row, col)).toString();
            if (col < model.columnCount() - 1)
                stream << ",";
        }
        stream << "\n";
    }
  1. 关闭文件。
代码语言:txt
复制
    file.close();
}

完整的代码示例:

代码语言:txt
复制
#include <QSqlTableModel>
#include <QFile>
#include <QTextStream>

void exportToCsv() {
    QSqlTableModel model;
    model.setTable("your_table_name");
    model.setDatabase(QSqlDatabase::database("your_connection_name"));
    model.select();

    QFile file("output.csv");
    if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
        QTextStream stream(&file);

        // 写入表头
        for (int i = 0; i < model.columnCount(); i++) {
            stream << model.headerData(i, Qt::Horizontal).toString();
            if (i < model.columnCount() - 1)
                stream << ",";
        }
        stream << "\n";

        // 写入数据
        for (int row = 0; row < model.rowCount(); row++) {
            for (int col = 0; col < model.columnCount(); col++) {
                stream << model.data(model.index(row, col)).toString();
                if (col < model.columnCount() - 1)
                    stream << ",";
            }
            stream << "\n";
        }

        file.close();
    }
}

这样,遍历QSqlTableModel并导出到.csv文件的功能就实现了。你可以根据需要调用exportToCsv()函数来导出数据。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券