自己编写的一个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 ;

}

qt 操作excel表格的更多相关文章

  1. Python 利用Python操作excel表格之openyxl介绍Part2

    利用Python操作excel表格之openyxl介绍 by:授客 QQ:1033553122 欢迎加入全国软件测试交流qq群(群号:7156436) ## 绘图 c = LineChart()    ...

  2. Python 利用Python操作excel表格之openyxl介绍Part1

    利用Python操作excel表格之openyxl介绍 by:授客 QQ:1033553122 欢迎加入全国软件测试交流qq群(群号:7156436),免费获取以下性能监控工具(类似Nmon精简版) ...

  3. 【转】python操作excel表格(xlrd/xlwt)

    [转]python操作excel表格(xlrd/xlwt) 最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异, ...

  4. Python 利用Python操作excel表格之xlwt介绍

    利用Python操作excel表格之xlwt介绍   by:授客 QQ:1033553122 直接上代码   案例1 #!/usr/bin/env python # -*- coding:utf-8 ...

  5. 用NPOI、C#操作Excel表格生成班级成绩单

    在C#中利用NPOI操作Excel表格非常方便,几乎上支持所有的Excel表格本身所有的功能,如字体设置.颜色设置.单元格合并.数值计算.页眉页脚等等. 这里准备使用NPOI生成一个班级成绩单Exce ...

  6. python - 操作excel表格

    说明:由于公司oa暂缺,人事妹子在做考勤的时候,需要通过几个excel表格去交叉比对员工是否有旷工或迟到,工作量大而且容易出错. 这时候it屌丝的机会来啦,花了一天时间给妹子撸了一个自动化脚本. 1. ...

  7. 转载:python操作excel表格(xlrd/xlwt)

    python操作excel表格(xlrd/xlwt)   最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而 ...

  8. 使用Java操作Excel表格

    目录 一.配置第三方库 二.使用Apache POI API 1. 打开Excel文件 2. 选择对应的sheet 3. Sheet接口的基本使用 3.1 获取开头行和结束行 3.2 获取Row对象 ...

  9. Qt 操作Excel

    Qt对Excel的数据读/写操作没有现存的类,需要使用QAxObject,下面是从网上下载下来的一个封装好的类,感觉还可以,一般情况下够用,拿来给大家分享. 头文件: #ifndef EXCELENG ...

随机推荐

  1. python - 类的方法

    类的方法分为:普通方法. 静态方法和类方法   调用方式 特征 普通方法 由对象去调用执行,属于类 至少一个self,对象调用 静态方法 属于类,但通过类来调用,不依赖于任何对象,方法内部不需要对象封 ...

  2. 开源项目Material Calendar View 学习记录 (一)

    开源项目Material Calendar View 学习记录 Github: https://github.com/prolificinteractive/material-calendarview ...

  3. 对plist文件的简单封装

    常常会用到对plist文件的封装 +(NSArray *)LoadFriendsDataFromPlist:(NSString *)plistName{ NSString * filePath = [ ...

  4. hdu5672 尺取法

    StringTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Subm ...

  5. 洛谷 P3383 【模板】线性筛素数

    P3383 [模板]线性筛素数 题目描述 如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内) 输入输出格式 输入格式: 第一行包含两个正整数N.M,分别表示查询的范 ...

  6. 关于extern对变量的使用

    extern 是声明全局的变量的意思. 例如在一个工程中有两个cpp,一个是test.cpp一个是main.cpp . 我们在test.cpp中定义了一个int num;但是我们在main.cpp中想 ...

  7. 我和小美的撸码日记--基于MVC+Jqgrid的.Net快速开发框架

    前言:以前的帐号没有发首页的权限,特此把这篇文章从另外一个博客移过来,这篇是<我和小美的撸码日记>的序 一转眼务农6年了,呆过大公司也去过小作坊,码农的人生除了抠腚还是抠腚.在所有呆过的公 ...

  8. c# 高效分页只需一个dll实例

    第一.首先下载WebUIControl.dll http://pan.baidu.com/s/1gdkilDh 第二.添加引用 三.应用实例-前台代码 <%@ Register Assembly ...

  9. bzoj 3238 Ahoi2013 差异

    3238: [Ahoi2013]差异 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 2357  Solved: 1067[Submit][Status ...

  10. C语言内存调试技巧—C语言最大难点揭秘

    本文将带您了解一些良好的和内存相关的编码实践,以将内存错误保持在控制范围内.内存错误是 C 和 C++ 编程的祸根:它们很普遍,认识其严重性已有二十多年,但始终没有彻底解决,它们可能严重影响应用程序, ...