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