• 大小: 1.3MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-08-15
  • 语言: 其他
  • 标签: qt  

资源简介

原文为《Qt中将QTableView中的数据导出为Excel文件>>,地址http://blog.csdn.net/superjoel/article/details/5321404。经过修改,支持QT的编译和运行。

资源截图

代码片段和文件信息

#include “exportexcelobject.h“
#include 
#include 
#include 

int ExportExcelobject::export2Excel()
{
    if(fieldList.size() <= 0)
    {
        qDebug() << “ExportExcelobject::export2Excel failed: No fields defined.“;
        return -1;
    }

    QSqlDatabase db = QSqlDatabase::addDatabase(“QODBC“ “excelexport“);
    if(!db.isValid())
    {
        qDebug() << “ExportExcelobject::export2Excel failed: QODBC not supported.“;
        return -2;
    }
    // set the dsn string
    QString dsn = QString(“DRIVER={Microsoft Excel Driver (*.xls)};DSN=‘‘;FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\“%1\“;DBQ=%2“).
                  arg(excelFilePath).arg(excelFilePath);
    db.setDatabaseName(dsn);
    if(!db.open())
    {
        qDebug() << “ExportExcelobject::export2Excel failed: Create Excel file failed by DRIVER={Microsoft Excel Driver (*.xls)}.“;
        //QSqlDatabase::removeDatabase(“excelexport“);
        return -3;
    }

    QSqlQuery query(db);

    //drop the table if it‘s already exists
    QString s sSql = QString(“DROP TABLE [%1] (“).arg(sheetName);
    query.exec(sSql);

    //create the table (sheet in Excel file)
    sSql = QString(“CREATE TABLE [%1] (“).arg(sheetName);
    for (int i = 0; i < fieldList.size(); i++)
    {
        s = QString(“[%1] %2“).arg(fieldList.at(i)->sFieldName).arg(fieldList.at(i)->sFieldType);
        sSql += s;
        if(i < fieldList.size() - 1)
            sSql += “  “;
    }

    sSql += “)“;
    query.prepare(sSql);

    if(!query.exec())
    {
        qDebug() << “ExportExcelobject::export2Excel failed: Create Excel sheet failed.“;
        //db.close();
        //QSqlDatabase::removeDatabase(“excelexport“);
        return -4;
    }

    //add all rows
    sSql = QString(“INSERT INTO [%1] (“).arg(sheetName);
    for (int i = 0; i < fieldList.size(); i++)
    {
        sSql += fieldList.at(i)->sFieldName;
        if(i < fieldList.size() - 1)
            sSql += “  “;
    }
    sSql += “) VALUES (“;
    for (int i = 0; i < fieldList.size(); i++)
    {
        sSql += QString(“:data%1“).arg(i);
        if(i < fieldList.size() - 1)
            sSql += “  “;
    }
    sSql += “)“;

    qDebug() << sSql;

    int r iRet = 0;
    for(r = 0 ; r < tableView->model()->rowCount() ; r++)
    {
        query.prepare(sSql);
        for (int c = 0; c < fieldList.size(); c++)
        {
            query.bindValue(QString(“:data%1“).arg(c) tableView->model()->data(tableView->model()->index(r fieldList.at(c)->iCol)));
        }

        if(query.exec())
            iRet++;

        if(r % 10 == 0)
            emit exportedRowCount(r);
    }

    emit exportedRowCount(r);

    return iRet;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        726  2018-08-25 17:05  TableView\.qmake.stash

     文件     505638  2018-08-25 17:11  TableView\debug\exportexcelobject.o

     文件     503272  2018-08-25 17:12  TableView\debug\main.o

     文件     670628  2018-08-25 17:10  TableView\debug\mainwindow.o

     文件       4381  2018-08-25 17:11  TableView\debug\moc_exportexcelobject.cpp

     文件     369684  2018-08-25 17:11  TableView\debug\moc_exportexcelobject.o

     文件       4176  2018-08-25 17:11  TableView\debug\moc_mainwindow.cpp

     文件     329107  2018-08-25 17:11  TableView\debug\moc_mainwindow.o

     文件       2822  2018-08-25 17:11  TableView\debug\moc_mytestmodel.cpp

     文件     387833  2018-08-25 17:11  TableView\debug\moc_mytestmodel.o

     文件       9895  2018-08-25 17:11  TableView\debug\moc_predefs.h

     文件     385053  2018-08-25 17:11  TableView\debug\mytestmodel.o

     文件    2913033  2018-08-25 17:12  TableView\debug\TestTableView.exe

     文件       2798  2010-02-23 12:03  TableView\exportexcelobject.cpp

     文件       2971  2010-02-23 12:01  TableView\exportexcelobject.h

     文件        183  2018-08-25 17:12  TableView\main.cpp

     文件       2093  2010-02-23 15:31  TableView\mainwindow.cpp

     文件        572  2010-02-23 13:32  TableView\mainwindow.h

     文件       2262  2010-02-23 13:32  TableView\mainwindow.ui

     文件      29438  2018-08-25 17:10  TableView\Makefile

     文件      74516  2018-08-25 17:10  TableView\Makefile.Debug

     文件      74664  2018-08-25 17:10  TableView\Makefile.Release

     文件      17892  2010-01-12 15:53  TableView\mytableview.cpp

     文件       5400  2010-01-11 17:01  TableView\mytableview.h

     文件       1147  2018-08-25 17:10  TableView\mytestmodel.cpp

     文件        481  2010-01-09 17:57  TableView\mytestmodel.h

     文件        478  2018-08-25 17:10  TableView\TestTableView.pro

     文件      24163  2018-08-25 17:09  TableView\TestTableView.pro.user

     文件       4408  2018-08-25 17:10  TableView\ui_mainwindow.h

     目录          0  2018-08-25 17:12  TableView\debug

............此处省略5个文件信息

评论

共有 条评论