QTEXCEL 操作

    技术2025-09-30  28

    #include <QtSql/QSqlDatabase>#include <QtSql/QSqlQuery>#include <QFileDialog>#include <QtDebug>

    //调用方法,如下:    QString fileName = QFileDialog::getSaveFileName(this, tr("Excel file"), qApp->applicationDirPath (), tr("Excel Files (*.xls)"));    if (fileName.isEmpty())    return;    QMessageBox::about(this, tr("您将要建立的Excel文件"), fileName );    if (excel(fileName)>0 )//调用导出Excel方法    {    QMessageBox::about(this, tr("Excel文件 导出完成"), fileName );    QSqlDatabase::removeDatabase("excelexport");    }

    //对于excel的到处操作如下:int ww::excel(QString fileName){     QString sheetName;     sheetName="mydatas";     qDebug() <<"fileName"<<fileName;     QSqlDatabase db = QSqlDatabase::addDatabase("QODBC", "excelexport");     if(!db.isValid())     {      qDebug() << "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(fileName).arg(fileName);         db.setDatabaseName(dsn);         if(!db.open())         {           qDebug() << "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  sSql = QString("DROP TABLE [%1] ").arg(sheetName);             query.exec(sSql);

                 //create the table (sheet in Excel file)             sSql = QString("CREATE TABLE [%1] (").arg(sheetName);             sSql+="[网名] char(20) , [网站网址] char(20) ,[QQ号] char(20) ";             sSql += ")";             qDebug()<<"sSql"<<sSql;             query.prepare(sSql);             if(! query.exec())             {               qDebug() << "export2Excel failed: Create Excel sheet failed.";                db.close();                QSqlDatabase::removeDatabase("excelexport");                return -4;             }         sSql =QString("INSERT INTO [%1] (").arg(sheetName);         query.prepare( sSql+" 网名, 网站网址, QQ号) "                         "VALUES (:name, :web, :qq)");         query.bindValue(":name", "eeerrrrr");         query.bindValue(":web", "http://www.satsuns.com");         query.bindValue(":qq", 603031225);         query.exec();         return 1;}

    最新回复(0)