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 ; }
|