Lv.的博客

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:\QtProject\ATS - 20130730\result\lcl_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:\QtProject\ATS - 20130730\result\lcl_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:\QtProject\ATS - 20130730\result\lcl_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 ;

 

 

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2015-03-31 10:43  Avatarx  阅读(3268)  评论(0编辑  收藏  举报