qt 操作excel表格
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表格的更多相关文章
- Python 利用Python操作excel表格之openyxl介绍Part2
利用Python操作excel表格之openyxl介绍 by:授客 QQ:1033553122 欢迎加入全国软件测试交流qq群(群号:7156436) ## 绘图 c = LineChart() ...
- Python 利用Python操作excel表格之openyxl介绍Part1
利用Python操作excel表格之openyxl介绍 by:授客 QQ:1033553122 欢迎加入全国软件测试交流qq群(群号:7156436),免费获取以下性能监控工具(类似Nmon精简版) ...
- 【转】python操作excel表格(xlrd/xlwt)
[转]python操作excel表格(xlrd/xlwt) 最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异, ...
- Python 利用Python操作excel表格之xlwt介绍
利用Python操作excel表格之xlwt介绍 by:授客 QQ:1033553122 直接上代码 案例1 #!/usr/bin/env python # -*- coding:utf-8 ...
- 用NPOI、C#操作Excel表格生成班级成绩单
在C#中利用NPOI操作Excel表格非常方便,几乎上支持所有的Excel表格本身所有的功能,如字体设置.颜色设置.单元格合并.数值计算.页眉页脚等等. 这里准备使用NPOI生成一个班级成绩单Exce ...
- python - 操作excel表格
说明:由于公司oa暂缺,人事妹子在做考勤的时候,需要通过几个excel表格去交叉比对员工是否有旷工或迟到,工作量大而且容易出错. 这时候it屌丝的机会来啦,花了一天时间给妹子撸了一个自动化脚本. 1. ...
- 转载:python操作excel表格(xlrd/xlwt)
python操作excel表格(xlrd/xlwt) 最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而 ...
- 使用Java操作Excel表格
目录 一.配置第三方库 二.使用Apache POI API 1. 打开Excel文件 2. 选择对应的sheet 3. Sheet接口的基本使用 3.1 获取开头行和结束行 3.2 获取Row对象 ...
- Qt 操作Excel
Qt对Excel的数据读/写操作没有现存的类,需要使用QAxObject,下面是从网上下载下来的一个封装好的类,感觉还可以,一般情况下够用,拿来给大家分享. 头文件: #ifndef EXCELENG ...
随机推荐
- 安装oracle11g未找到文件WFMLRSVCApp.ear文件
win7_64位系统,安装oracle11gR2时,报错提示: 未找到文件...WFMLRSVCApp.ear文件 解决方法如下: 将下载的两个压缩包解压至同一目录(合并)再安装即可解决此类问题.
- java基础之String
字符串的含义 字符串的应用 字符串的方法
- js调用百度地图搜索功能
引用百度jsApi <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&a ...
- 重写OnPaint事件对窗体重绘 实例1
public class WindowOne:Form { public WindowOne() { InitializeCompnent(); } public void InitializeCom ...
- 最简单轻便 的 sqlserver安装方式
网上有很多版本高的sqlserver 下下来就超级费劲 ,所以特意的想了个办法 ,就省时间 最高效率的安装 需要两个软件 我们假定安装 sqlserver 2005 1.SQLEXPR32_CHS ...
- BZOJ4006 JLOI2015 管道连接(斯坦纳树生成森林)
4006: [JLOI2015]管道连接 Time Limit: 30 Sec Memory Limit: 128 MB Description 小铭铭最近进入了某情报部门,该部门正在被如何建立安全的 ...
- 移动端常见的不同苹果手机media query汇总
在做手机网站的时候,我经常用百分比布局,但是经常在不同的手机显示的不同 比如说,一样的东西,在iphone4(s).5(s).6.plus中都会有不同显示 有时候也想有为了某个手机单独的做一些效果,来 ...
- [FML]学习笔记一Cross-validation交叉验证
在实际的工程中,有时labeled data的数量不足以留出validation sample(验证样本)否则会导致training sample(训练样本)的数量太少.为了解决这个问题,我们引入一种 ...
- Android设置选项开发及自定义Preference样式
一个完整的Android应用程序都应该提供选项(或者叫偏好设置等等)让用户对APP的表现形式能够进行设置,比如说是否加入用户体验计划,或者是否自动升级.定时提醒.开启自启动.后台运行等等.提供一个好的 ...
- iOS数据持久化 -- Core Data-备用
Core Data是一个功能强大的层,位于SQLite数据库之上,它避免了SQL的复杂性,能让我们以更自然的方式与数据库进行交互.Core Data将数据库行转换为OC对象(托管对象)来实现,这样无需 ...