• qt 操作excel表格


     自己编写的一个Qt C++类,用于操作excel表格,在Qt中操作excel需在.pro中增加CONFIG+=qaxcontainer配置。
    1、打开Excel:objExcel = new QAxObject("Excel.Application"); <?xml:namespace prefix = o />

    2、创建工作表:workSheet->dynamicCall("Add");

    3、打开工作表:workExcel->dynamicCall("Open (const QString&)", file);

    4、建立表头:pExcelCell->setProperty("Value", QVariant(strTemp));<?xml:namespace prefix = o />

    5、写入数据:pExcelCell->setProperty("Value", QVariant(sLTestMsg.at(i-1)));

    6、保存:workExcel->dynamicCall("SaveAs (const QString&)", saveFile);

    7、退出:objExcel->dynamicCall("Quit (void)")。

    /* Copyrignt (C). 2013-2016. TECHNOLOGIES LTD. */

    /**

     *Copyrignt (C). 2013-2016. TECHNOLOGIES LTD.

     *@file qexcel.h

     *@brief Operate Excel

     *@author lichenglong

     *@version 1.0

     *@date 2013/8/10

     *@History:

     <author>      <time>       <version>   <desc>

     lichenglong   2013/8/10    1.0             Operate Excel

    */

     

    #ifndef QEXCEL_H

    #define QEXCEL_H

     

    #include <QAxObject>

    #include <QAxWidget>

    #include <QString>

    #include <QDebug>

    #include <QObject>

    #include <QList>

    #include <QDir>

    #include <QMessageBox>

     

    #include <assert.h>

     

    #include "qt_windows.h"

    #include "apps/ATSCommm.h"

     

    /**

    * @brief Operate Excel in Qt

    */

    class QExcel : public QObject

    {

        Q_OBJECT

    public:

        /**

        * @brief Construction Function of QExcel

        * @param No

        * @return void

        */

        explicit QExcel(QObject *parent = 0);

        ~QExcel();

     

        /**

        * @brief Create Excel File

        * @param no

        * @return 0:success   -1:failed

        */

        bool CreateExcel(QString file);

     

        /**

        * @brief Open Excel File

        * @param file [QString]  the name of the opened file

        * @param uColumn [unsigned int]

        * @return 0:success   -1:failed

        */

        bool OpenExcel(QString file, unsigned int uColumn);

     

        /**

        * @brief set Work Talbe Header

        * @param no

        * @return void

        */

        void  setRatioAllSigExcelHeader();

     

        /**

        * @brief set Work Talbe Header: Resolution Ratio

        * @param no

        * @return void

        */

        void  SetResRatioExcelHeader();

     

        /**

        * @brief set Work Talbe Header:  Signal 1 resolution ratios

        * @param no

        * @return void

        */

        void  SetRatio1SigExcelHeader();

     

        /**

        * @brief set Work Talbe Header: Signal & 2 resolution ratios

        * @param no

        * @return void

        */

        void  SetRatio2SigExcelHeader();

     

        /**

        * @brief Write a Test Message

        * @param sLTestMsg [QList<QString>]  the Qstring List of test message

        * @param 

        * @return void

        */

        void WriteExcelMsg(QList<QString> sLTestMsg);

     

        /**

        * @brief Save Excel File

        * @param saveFile [QString]

        * @return 0:success   -1:failed

        */

        bool SaveExcel(QString saveFile);

     

    private:

     

        QAxObject *objExcel;                  /**< excel application.*/

        QAxObject * workExcel;              /**< excel  Handle of the opened file.*/

     

        QString fileName;                       /**< save path and name of the Work Table .*/

     

        unsigned int uiMaxColumn;        /**< colunm of the Work Table.*/

        unsigned int uiMaxRow;              /**< row of the Work Table.*/

     

        //QList<QString> sLTestMsg;         /**< row of the Work Table.*/

     

     

    };

     

    #endif // QEXCEL_H

     

    /* Copyrignt (C). 2013-2016. LTD. */

    /**

     *Copyrignt (C). 2013-2016. LTD.

     *@file qexcel.cpp

     *@brief Operate Excel

     *@author lichenglong

     *@version 1.0

     *@date 2013/8/10

     *@History:

     <author>      <time>       <version>   <desc>

     lichenglong   2013/8/10    1.0             Operate Excel

    */

     

    #include "qexcel.h"

     

    #include <QMessageBox>

     

    /**

    * @brief Construction Function of QExcel

    * @param No

    * @return void

    */

    QExcel::QExcel(QObject *parent) :

        QObject(parent)

    {

        /**< initlialize parameter.*/

        uiMaxColumn = MAXCOLUMN;

        uiMaxRow = 0;

     

        /**< use Excel ActiveX.*/

       objExcel = new QAxObject("Excel.Application");

     

       qDebug()<<objExcel;

     

       //QMessageBox::information(this,"success","save figure parameter.    ");

     

       /**< show current window.*/

       objExcel->setProperty("Visible", false);

     

    if(0)    //测试代码

    {

        /**< Create/Open Excel.*/

        QString tabelSavePath;

        // tabelSavePath.append("D:QtProjectATS - 20130730 esultlcl_20120808200000_8.xls");

        tabelSavePath.append("D:\1.xls" );

        if(this->CreateExcel(tabelSavePath))

        {

            this->OpenExcel(tabelSavePath,RES3SIGCOLUMN);

            this->setRatioAllSigExcelHeader();

        }

        else

        {

           //uiMaxColumn = RES3SIGCOLUMN;

           this->OpenExcel(tabelSavePath,RES3SIGCOLUMN);

        }

        QList<QString> sLTestMsg;

        sLTestMsg<<tr("1")<<tr("2013/8/7 20:30:20")<<tr("COM1")<<tr("192.168.1.1")<<tr("VCL-H3L")<<tr("Vtron123456");

        for(int i=6;i<RES3SIGCOLUMN;i++)

        {

            sLTestMsg<<tr("正确");

        }

        this->WriteExcelMsg(sLTestMsg);

        /**< save excel.*/

         this->SaveExcel(tabelSavePath);

     

        /**< Create/Open Excel.*/

        tabelSavePath.clear();

        // tabelSavePath.append("D:QtProjectATS - 20130730 esultlcl_20120808200000_8.xls");

        tabelSavePath.append("D:\2.xls" );

        if(this->CreateExcel(tabelSavePath))

        {

            this->OpenExcel(tabelSavePath,RES1SIGCOLUMN);

            this->SetRatio1SigExcelHeader();

        }

        else

        {

            //uiMaxColumn = RES1SIGCOLUMN;

            this->OpenExcel(tabelSavePath,RES1SIGCOLUMN);

        }

        sLTestMsg.clear();

        sLTestMsg<<tr("1")<<tr("2013/8/7 20:30:20")<<tr("COM1")<<tr("192.168.1.1")<<tr("VCL-H3L")<<tr("Vtron123456");

        for(int i=6;i<RES1SIGCOLUMN;i++)

        {

            sLTestMsg<<tr("_正确");

        }

     

        for(int i=6;i<RES1SIGCOLUMN;i++)

        {

            sLTestMsg[i].replace("_","LCL_");

            /*

            QString temp(sLTestMsg.at(6));

            qDebug()<< temp.replace("_","lcl");

     

            //sLTestMsg.at(6).clear();

            sLTestMsg.removeAt(6);

            sLTestMsg.insert(6,temp);

            //sLTestMsg.at(6) = temp;*/

        }

     

        this->WriteExcelMsg(sLTestMsg);

        /**< save excel.*/

         this->SaveExcel(tabelSavePath);

     

        qDebug()<<"lcl::::";

        /**< Create/Open Excel.*/

        tabelSavePath.clear();

        // tabelSavePath.append("D:QtProjectATS - 20130730 esultlcl_20120808200000_8.xls");

        tabelSavePath.append("D:\3.xls" );

        if(this->CreateExcel(tabelSavePath))

        {

            this->OpenExcel(tabelSavePath,RES1SIGCOLUMN);

            this->SetRatio2SigExcelHeader();

        }

        else

        {

           //uiMaxColumn = RES2SIGCOLUMN;

           this->OpenExcel(tabelSavePath,RES2SIGCOLUMN);

        }

        sLTestMsg.clear();

        sLTestMsg<<tr("1")<<tr("2013/8/7 20:30:20")<<tr("COM1")<<tr("192.168.1.1")<<tr("VCL-H3L")<<tr("Vtron123456");

        for(int i=6;i<RES2SIGCOLUMN;i++)

        {

            sLTestMsg<<tr("正确");

        }

        this->WriteExcelMsg(sLTestMsg);

        /**< save excel.*/

         this->SaveExcel(tabelSavePath);

     

     

    }

    }

     

    QExcel::~QExcel()

    {

        /**< exit Excel.*/

        objExcel->dynamicCall("Quit (void)");

     

        qDebug()<<"Qexcel exit... ";

        //OleUninitialize();

    }

     

    /**

    * @brief Create Excel File

    * @param file [QString]  the name of the opened file

    * @return 0:success   -1:failed

    */

    bool QExcel::CreateExcel(QString file)

    {

        QDir  dTemp;

     

        if(dTemp.exists(file))

        {

            qDebug()<<" QExcel::CreateExcel: exist file"<<file;

            return false;

        }

     

        qDebug()<<" QExcel::CreateExcel: succes";

     

        /**< create new excel sheet file.*/

        QAxObject * workSheet = objExcel->querySubObject("WorkBooks");

        workSheet->dynamicCall("Add");

     

        /**< save Excel.*/

        QAxObject * workExcel= objExcel->querySubObject("ActiveWorkBook");

        objExcel->setProperty("DisplayAlerts", 0);

        workExcel->dynamicCall("SaveAs (const QString&,int,const QString&,const QString&,bool,bool)",file,56,QString(""),QString(""),false,false);

        objExcel->setProperty("DisplayAlerts", 1);

        workExcel->dynamicCall("Close (Boolean)", false);

     

        /**< exit Excel.*/

        //objExcel->dynamicCall("Quit (void)");

     

        return true;

    }

     

    /**

    * @brief Open Excel File

    * @param file [QString]  the name of the opened file

    * @param uColumn [unsigned int]

    * @return 0:success   -1:failed

    */

    bool QExcel::OpenExcel(QString file, unsigned int uColumn)

    {

        if(file.isEmpty())

            return false;

     

        workExcel = objExcel->querySubObject("WorkBooks");

        assert(workExcel);

     

        /**< open  EXCEL, open file.xls.*/

        workExcel->dynamicCall("Open (const QString&)", file);

        assert(workExcel);

     

        uiMaxColumn = uColumn;

     

        return true;

    }

     

    /**

    * @brief set Work Talbe Header: Signal 1 resolution ratios

    * @param no

    * @return void

    */

    void  QExcel::SetRatio1SigExcelHeader()

    {

        /**< get active work books.*/     //获取活动工作簿:

        QAxObject * activeSheets = objExcel->querySubObject("ActiveWorkBook");

     

        /**< get table i.*/                         //获取第一个工作表sheet1:

        QAxObject * worksheet = activeSheets->querySubObject("Worksheets(int)", 1);

        //qDebug() << worksheet->property("Name").toString();     //获取工作表名:

     

        /**< get/set  cell value.*/              // 获取cell的值

        QAxObject * pExcelCell;

     

        /**< initlialize parameter.*/

        uiMaxColumn = RES1SIGCOLUMN;

     

        /**< set Work Table header.*/

        QString strTemp;

        strTemp = tr("编号");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 1 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("时间");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 2 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("串口");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 3 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("IP");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 4 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("硬件型号");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 5 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("序列号");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 6 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("OSD");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 7 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("DRGB");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 8 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("ARGB");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 9 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("校准园");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 10 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("黑白点");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 11 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("工厂图");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 12 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("CVBS");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 13 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("YC");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 14 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("HDTV");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 15 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("HDMI");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 16 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("DRGB-S");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 17 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("ARGB-S");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 18 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

     

     

        //qDebug() <<"Excel::setRatioAllSigExcelHeader(): "<< strTemp<<pExcelCell->property("Value").toString();

    }

     

    /**

    * @brief set Work Talbe Header: Signal & 2 resolution ratios

    * @param no

    * @return void

    */

    void  QExcel::SetRatio2SigExcelHeader()

    {

        /**< get active work books.*/     //获取活动工作簿:

        QAxObject * activeSheets = objExcel->querySubObject("ActiveWorkBook");

     

        /**< get table i.*/                         //获取第一个工作表sheet1:

        QAxObject * worksheet = activeSheets->querySubObject("Worksheets(int)", 1);

        //qDebug() << worksheet->property("Name").toString();     //获取工作表名:

     

        /**< get/set  cell value.*/              // 获取cell的值

        QAxObject * pExcelCell;

     

        /**< initlialize parameter.*/

        uiMaxColumn = RES2SIGCOLUMN;

     

        /**< set Work Table header.*/

        QString strTemp;

        strTemp = tr("编号");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 1 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("时间");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 2 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("串口");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 3 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("IP");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 4 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("硬件型号");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 5 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("序列号");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 6 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("OSD");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 7 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("DRGB");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 8 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("ARGB");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 9 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("校准园");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 10 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("黑白点");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 11 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("CVBS");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 12 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("YC");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 13 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("HDTV");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 14 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("HDMI");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 15 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("DRGB-S");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 16 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("ARGB-S");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 17 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("工厂图");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 18 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("OSD");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 19 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("DRGB");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 20 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("ARGB");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 21 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("校准园");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 22 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("黑白点");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 23 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("工厂图");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 24 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("CVBS");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 25 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("YC");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 26 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("HDTV");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 27 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("HDMI");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 28 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("DRGB-S");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 29 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("ARGB-S");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 30 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        //qDebug() <<"Excel::setRatioAllSigExcelHeader(): "<< strTemp<<pExcelCell->property("Value").toString();

    }

     

    /**

    * @brief set Work Talbe Header

    * @param no

    * @return void

    */

    void  QExcel::setRatioAllSigExcelHeader()

    {

        /**< get active work books.*/     //获取活动工作簿:

        QAxObject * activeSheets = objExcel->querySubObject("ActiveWorkBook");

     

        /**< get table i.*/                         //获取第一个工作表sheet1:

        QAxObject * worksheet = activeSheets->querySubObject("Worksheets(int)", 1);

        //qDebug() << worksheet->property("Name").toString();     //获取工作表名:

     

        /**< get/set  cell value.*/              // 获取cell的值

        QAxObject * pExcelCell;

     

        /**< initlialize parameter.*/

        uiMaxColumn = RES3SIGCOLUMN;

     

        /**< set Work Table header.*/

        QString strTemp;

        strTemp = tr("编号");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 1 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("时间");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 2 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("串口");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 3 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("IP");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 4 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("硬件型号");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 5 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("序列号");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 6 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("OSD");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 7 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("DRGB");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 8 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("ARGB");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 9 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("校准园");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 10 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("黑白点");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 11 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("CVBS");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 12 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("YC");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 13 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("HDTV");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 14 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("HDMI");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 15 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("DRGB-S");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 16 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("ARGB-S");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 17 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("工厂图");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 18 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("OSD");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 19 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("DRGB");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 20 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("ARGB");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 21 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("校准园");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 22 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("黑白点");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 23 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("工厂图");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 24 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("CVBS");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 25 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("YC");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 26 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("HDTV");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 27 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("HDMI");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 28 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("DRGB-S");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 29 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("ARGB-S");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 30 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("OSD");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 31 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("DRGB");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 32 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("ARGB");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 33 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("校准园");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 34 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("黑白点");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 35 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("工厂图");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 36 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("CVBS");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 37 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("YC");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 38 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("HDTV");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 39 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("HDMI");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 40 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("DRGB-S");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 41 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("ARGB-S");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 42 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        //qDebug() <<"Excel::setRatioAllSigExcelHeader(): "<< strTemp<<pExcelCell->property("Value").toString();

    }

     

    /**

    * @brief set Work Talbe Header: Resolution Ratio

    * @param no

    * @return void

    */

    void  QExcel::SetResRatioExcelHeader()

    {

        /**< get active work books.*/     //获取活动工作簿:

        QAxObject * activeSheets = objExcel->querySubObject("ActiveWorkBook");

     

        /**< get table i.*/                         //获取第一个工作表sheet1:

        QAxObject * worksheet = activeSheets->querySubObject("Worksheets(int)", 1);

        //qDebug() << worksheet->property("Name").toString();     //获取工作表名:

     

        /**< get/set  cell value.*/              // 获取cell的值

        QAxObject * pExcelCell;

     

        /**< initlialize parameter.*/

        uiMaxColumn = RESRATIOCOLUMN;

     

        /**< set Work Table header.*/

        QString strTemp;

        strTemp = tr("编号");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 1 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("时间");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 2 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("串口");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 3 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("IP");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 4 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("硬件型号");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 5 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("序列号");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 6 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("OSD");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 7 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("DRGB");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 8 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("ARGB");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 9 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("校准园");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 10 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("黑白点");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 11 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        strTemp = tr("工厂图");

        pExcelCell= worksheet->querySubObject("Cells(int,int)", 1, 12 );

        pExcelCell->setProperty("Value", QVariant(strTemp));

     

        //qDebug() <<"Excel::setRatioAllSigExcelHeader(): "<< strTemp<<pExcelCell->property("Value").toString();

    }

     

     

    /**

    * @brief Write a Test Message

    * @param sLTestMsg [QList<QString>]  the Qstring List of test message

    * @param  Eg:  sLTestMsg<<tr("1")<<tr("2013/8/7 20:30:00")<<tr("COM1")<<tr("192.168.1.1")<<tr("VCL-H3L")

    * @param  <<tr("正确")<<tr("正确")<<tr("正确")<<tr("正确")<<tr("正确")<<tr("正确");

    * @return void

    */

    void QExcel::WriteExcelMsg(QList<QString> sLTestMsg)

    {

            qDebug()<<sLTestMsg<<sLTestMsg.count();

     

            /**< get active work books.*/

            QAxObject * activeSheets = objExcel->querySubObject("ActiveWorkBook");

     

            /**< get table 1.*/

            QAxObject * worksheet = activeSheets->querySubObject("Worksheets(int)", 1);

     

            /**< get the max  of rows.*/

            QAxObject * pExcelRange = worksheet->querySubObject("UsedRange");

            QAxObject * pExcelRows = pExcelRange->querySubObject("Rows");

     

            uiMaxRow = pExcelRows->property("Count").toInt();

            //qDebug()<<"lcl..........."<<uiMaxRow<<uiMaxColumn;

     

            /**< get/set  cell value.*/

            QAxObject * pExcelCell;

     

            for(unsigned int i=1;i<=uiMaxColumn;i++)

            {

                pExcelCell= worksheet->querySubObject("Cells(int,int)", uiMaxRow+1, i );

                pExcelCell->setProperty("Value", QVariant(sLTestMsg.at(i-1)));

            }

     

    }

     

    /**

    * @brief Save Excel File

    * @param saveFile [QString]

    * @return 0:success   -1:failed

    */

    bool QExcel::SaveExcel(QString saveFile)

    {

        qDebug()<<" QExcel::SaveExcel:"<<saveFile;

     

        /**< save Excel.*/

        QAxObject * workExcel= objExcel->querySubObject("ActiveWorkBook");

        objExcel->setProperty("DisplayAlerts", 0);

        workExcel->dynamicCall("SaveAs (const QString&)", saveFile);

        objExcel->setProperty("DisplayAlerts", 1);

        workExcel->dynamicCall("Close (Boolean)", false);

     

        /**< exit Excel.*/

        //objExcel->dynamicCall("Quit (void)");

        return true ;

    }

     

     

     

  • 相关阅读:
    java基础-集合笔记
    Spring工具类
    XStream的基本使用
    java之路径问题
    Vue 动态组件渲染问题分析
    watch案例解析(element-ui el-select 无法选中问题剖析)
    v-if案例解析(element-ui form-item 结合 v-if 动态生成rule规则表单元素,表单无法验证问题剖析 )
    Vue 虚拟Dom 及 部分生命周期初探
    Android仿苹果版QQ下拉刷新实现(二) ——贝塞尔曲线开发"鼻涕"下拉粘连效果
    AngularJs(SPA)单页面SEO以及百度统计应用(下)
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/4380190.html
Copyright © 2020-2023  润新知