From 20ffcfb5507daf34f81346ca3dfa4c031e7b2fe3 Mon Sep 17 00:00:00 2001
From: wumu <mayi@mayi.com>
Date: 星期日, 27 四月 2025 22:13:53 +0800
Subject: [PATCH] 0427

---
 internal_system_v1/searchinfo.cpp |  529 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 517 insertions(+), 12 deletions(-)

diff --git a/internal_system_v1/searchinfo.cpp b/internal_system_v1/searchinfo.cpp
index 83cc3fe..09ed7fd 100644
--- a/internal_system_v1/searchinfo.cpp
+++ b/internal_system_v1/searchinfo.cpp
@@ -1,8 +1,15 @@
-#include "searchinfo.h"
+锘�#include "searchinfo.h"
 #include "ui_searchinfo.h"
+#include <QAxObject>
 #include <QDebug>
+#include <QDir>
 #include <QSqlError>
 #include <QSqlQuery>
+#include <QMessageBox>
+#include <QFileDialog>
+#include <QCalendarWidget>
+
+#pragma execution_character_set("utf-8")
 
 SearchInfo::SearchInfo(QWidget *parent) :
     QMainWindow(parent),
@@ -13,11 +20,17 @@
 //    ui->label_3->hide();
 //    ui->dateTimeEdit->hide();
 //    ui->dateTimeEdit_2->hide();
+    ui->dateEdit_begin->calendarWidget()->setStyleSheet("background-color:#deab8a");
+    ui->dateEdit_end->calendarWidget()->setStyleSheet("background-color:pink");
+    ui->dateEdit_end->setDate(QDate::currentDate());
 
     m_model = new QStandardItemModel(this);
     ui->tableView->setModel(m_model);
     ui->tableView->verticalHeader()->setVisible(false); // 闅愯棌琛屽ご
-
+    m_model->setColumnCount(5);
+    QStringList labels;
+    labels<<"ID"<<"鎸囨爣鍚嶇О"<<"浠g爜"<<"鏁伴噺"<<"鍏徃缂栧彿"<<"瀹¤鏃堕棿";
+    m_model->setHorizontalHeaderLabels(labels);
     if(QSqlDatabase::contains("qt_sql_default_connection")){
         m_db = QSqlDatabase::addDatabase("qt_sql_default_connection");
     }else{
@@ -32,7 +45,8 @@
     }else{
         qDebug()<<"db open fail";
     }
-
+    // 璁剧疆琛ㄦ牸鍒楁爣绛�
+    setLabels();
 
 }
 
@@ -125,6 +139,302 @@
     createTableHasUnit("case_clue");
     m_itemAndTable["妗堜欢绾跨储"] = "case_clue";
 
+    // 鍗曚綅鐨勬墍鏈変俊鎭〃  鍒涘缓
+    createTableAllComInfo("all_company_info");
+
+    // 鏁存敼缁撴灉淇℃伅琛� 鍒涘缓
+    createTableRectifyResultInfo("rectify_result_info");
+
+    // 闂娓呭崟淇℃伅琛� 鍒涘缓
+    createTableProblemListInfo("problem_list_info");
+
+    // 缁煎悎褰曞叆淇℃伅琛� 鍒涘缓
+    createTableComprehensiveEntryInfo("comprehensive_entry_info");
+
+    // 鏁存敼鍙拌处淇℃伅琛� 鍒涘缓
+    createTableStandingBook("standing_book_info");
+
+}
+
+// 缁煎悎褰曞叆淇℃伅琛� 浠ョ紪鐮佷綔涓烘寚鏍囧悕
+void SearchInfo::createTableComprehensiveEntryInfo(QString tableName){
+    QString sql = QString("CREATE TABLE %1 (\
+            id       INTEGER      PRIMARY KEY AUTOINCREMENT,\
+            name     VARCHAR (30),\
+            _030000     TEXT,\
+            _030001     TEXT,\
+            _030100     TEXT,\
+            _030101     TEXT,\
+            _030200     TEXT,\
+            _030210     TEXT,\
+            _030220     TEXT,\
+            _030221     TEXT,\
+            _030222     TEXT,\
+            _030223     TEXT,\
+            _030230     TEXT,\
+            _030231     TEXT,\
+            _030232     TEXT,\
+            _030233     TEXT,\
+            _030234     TEXT,\
+            _030240     TEXT,\
+            _030241     TEXT,\
+            _030242     TEXT,\
+            _030243     TEXT,\
+            _030250     TEXT,\
+            _030251     TEXT,\
+            _030252     TEXT,\
+            _030253     TEXT,\
+            _030254     TEXT,\
+            _030255     TEXT,\
+            _030256     TEXT,\
+            _030257     TEXT,\
+            _030258     TEXT,\
+            _030260     TEXT,\
+_030300     TEXT,\
+_030301     TEXT,\
+            _030302     TEXT,\
+            _030303     TEXT,\
+            _030304     TEXT,\
+            _030305     TEXT,\
+            _030306     TEXT,\
+            _030307     TEXT,\
+            _030308     TEXT,\
+            _030310     TEXT,\
+            _030400     TEXT,\
+            _030500     TEXT,\
+            _030510     TEXT,\
+            _030520     TEXT,\
+            _030521     TEXT,\
+            _030522     TEXT,\
+            _030523     TEXT,\
+            _030524     TEXT,\
+            _030525     TEXT,\
+            _030526     TEXT,\
+            _030527     TEXT,\
+            _030528     TEXT,\
+          _030600     TEXT,\
+          _030610     TEXT,\
+          _030620     TEXT,\
+          _030621     TEXT,\
+          _030622     TEXT,\
+          _030623     TEXT,\
+          _030624     TEXT,\
+          _030700     TEXT,\
+          _030701     TEXT,\
+          _030702     TEXT,\
+          _030703     TEXT,\
+          _030704     TEXT,\
+          _030705     TEXT,\
+          _030706     TEXT,\
+          _030800     TEXT,\
+          _030801     TEXT,\
+          _030802     TEXT,\
+          _030803     TEXT,\
+          _030804     TEXT,\
+            _030900     TEXT,\
+            _030901     TEXT,\
+            _030902     TEXT,\
+            _030903     TEXT,\
+            _031000     TEXT,\
+            _031001     TEXT,\
+            company_type     TEXT,\
+            year     TEXT)").arg(tableName);
+    QSqlQuery query;
+    if(query.exec(sql))
+    {
+      qDebug()<<QString("create %1 ok...").arg(tableName);
+    }else{
+      qDebug()<<QString("create %1 fail...").arg(tableName)<<query.lastError().text();
+    }
+}
+
+
+// 鏁存敼缁撴灉淇℃伅琛�
+void SearchInfo::createTableRectifyResultInfo(QString tableName){
+    QString sql = QString("CREATE TABLE %1 (\
+            id       INTEGER      PRIMARY KEY AUTOINCREMENT,\
+            name     VARCHAR (30),\
+            淇鍒跺害     TEXT,\
+            鏂板鍒跺害     TEXT,\
+            鎸藉洖鎹熷け     TEXT,\
+            鍓旈櫎     TEXT,\
+            瀹″噺     TEXT,\
+            澶勭悊浜�     TEXT,\
+            瀹h疮鍩硅     TEXT,\
+            鍏朵粬     TEXT,\
+            瀹℃牳缁撴灉     TEXT,\
+            娉ㄩ攢     TEXT)").arg(tableName);
+    QSqlQuery query;
+    if(query.exec(sql))
+    {
+      qDebug()<<QString("create %1 ok...").arg(tableName);
+    }else{
+      qDebug()<<QString("create %1 fail...").arg(tableName)<<query.lastError().text();
+    }
+
+}
+
+// 闂娓呭崟淇℃伅琛�
+void SearchInfo::createTableProblemListInfo(QString tableName){
+    QString sql = QString("CREATE TABLE %1 (\
+            id       INTEGER      PRIMARY KEY AUTOINCREMENT,\
+            name     VARCHAR (30),\
+            搴忓彿     TEXT,\
+            鎽樿     TEXT,\
+            妫�鏌ユ椂闂�     TEXT,\
+            妫�鏌ユ柟寮�     TEXT,\
+            绾犳闂     TEXT,\
+            瀹屽杽鍒跺害     TEXT,\
+            瀹屾垚鏃堕棿     TEXT,\
+            涓昏鍘熷洜     TEXT,\
+            瀹屾垚鏃堕檺     TEXT,\
+            涓昏鍘熷洜1     TEXT,\
+            璐d换閮ㄩ棬鎴栬矗浠讳汉     TEXT,\
+            瀹屾垚鏃堕檺1     TEXT,\
+            鏄惁閿�鍙�     TEXT,\
+            閿�鍙锋椂闂�     TEXT)").arg(tableName);
+    QSqlQuery query;
+    if(query.exec(sql))
+    {
+      qDebug()<<QString("create %1 ok...").arg(tableName);
+    }else{
+      qDebug()<<QString("create %1 fail...").arg(tableName)<<query.lastError().text();
+    }
+
+}
+
+// 鍗曚綅淇℃伅琛� 鍏�
+void SearchInfo::createTableAllComInfo(QString tableName){
+    QString sql = QString("CREATE TABLE %1 (\
+            id       INTEGER      PRIMARY KEY AUTOINCREMENT,\
+            name     VARCHAR (30),\
+            code     VARCHAR (30),\
+            鏈烘瀯绫诲瀷     TEXT,\
+            涓昏涓氬姟娲诲姩   TEXT,\
+            琛屼笟浠g爜     TEXT,\
+            鍗曚綅娉ㄥ唽鍦板強鍖哄煙 TEXT,\
+            鍖哄煙浠g爜     TEXT,\
+            鍩庝埂浠g爜     TEXT,\
+            鍗曚綅瑙勬ā     TEXT,\
+            浠庝笟鏈熸湯浜烘暟   TEXT,\
+            娉曞畾浠h〃浜�    TEXT,\
+            鎵ц浼氳鏍囧噯绫诲埆 TEXT,\
+            闀块�斿尯鍙�     TEXT,\
+            鍥哄畾鐢佃瘽     TEXT,\
+            閭斂缂栫爜     TEXT,\
+            鐢靛瓙閭     TEXT,\
+            缃戝潃       TEXT,\
+            鏄惁鏈変笂涓�绾ф硶浜�       TEXT,\
+            涓婁竴绾х粺淇′唬鐮�       TEXT,\
+            鍘熺粍缁囦唬鐮�       TEXT,\
+            涓婄骇鍗曚綅鍚嶇О       TEXT,\
+            鏄惁璁剧疆鎬诲璁″笀       TEXT,\
+            鎬诲璁″笀鑱屼綅灞傜骇       TEXT,\
+            鎬诲浠昏亴鏂瑰紡       TEXT,\
+            鏄惁璁剧疆鍐呭鏈烘瀯       TEXT,\
+            鍐呭鏈烘瀯鍚嶇О       TEXT,\
+            棰嗗鏈烘瀯       TEXT,\
+            鏄惁鐙珛璁剧疆鍐呭鏈烘瀯       TEXT,\
+            璐㈠姟閮ㄩ棬       INTEGER,\
+            娉曞姟閮ㄩ棬       INTEGER,\
+            鍐呴儴鎺у埗閮ㄩ棬       INTEGER,\
+            绾閮ㄩ棬       INTEGER,\
+            鍏朵粬閮ㄩ棬       INTEGER,\
+            鍐呭灞傜骇       TEXT,\
+            缂栧埗鏁伴噺       INTEGER,\
+            瀹炴湁浜烘暟閲�       INTEGER,\
+            涓撹亴浜哄憳鏁伴噺       INTEGER,\
+            鎷ユ湁CIA浜烘暟       INTEGER,\
+            纭曞+瀛﹀巻浠ヤ笂浜烘暟       INTEGER,\
+            鏈浜烘暟       INTEGER,\
+            涓撶鍙婁互涓嬩汉鏁�       INTEGER,\
+            楂樼骇鑱岀О浜烘暟       INTEGER,\
+            涓骇鑱岀О浜烘暟       INTEGER,\
+            鍒濈骇鑱岀О浜烘暟       INTEGER,\
+            鏃犺亴绉颁汉鏁�       INTEGER,\
+            浜斿崄宀佷互涓婁汉鏁�       INTEGER,\
+            涓夊崄鑷充簲鍗佸瞾宀佷汉鏁�       INTEGER,\
+            涓夊崄宀佷互涓嬩汉鏁�       INTEGER,\
+            瀹¤鏁伴噺       INTEGER,\
+            浼氳鏁伴噺       INTEGER,\
+            缁忔祹鏁伴噺       INTEGER,\
+            娉曞緥鏁伴噺       INTEGER,\
+            绠$悊鏁伴噺       INTEGER,\
+            淇℃伅鎶�鏈暟閲�       INTEGER,\
+            宸ョ▼鏁伴噺       INTEGER,\
+            鍏朵粬鏁伴噺       INTEGER,\
+            缁熻璐熻矗浜�       TEXT,\
+            濉〃浜�       TEXT,\
+            鑱旂郴鐢佃瘽       TEXT,\
+            濉姤鏃ユ湡       TEXT\
+        )").arg(tableName);
+    QSqlQuery query;
+    if(query.exec(sql))
+    {
+        qDebug()<<QString("create %1 ok...").arg(tableName);
+    }else{
+        qDebug()<<QString("create %1 fail...").arg(tableName)<<query.lastError().text();
+    }
+}
+
+// 鏁存敼鍙拌处
+void SearchInfo::createTableStandingBook(QString tableName){
+    QString sql = QString("CREATE TABLE %1 (\
+            id       INTEGER      PRIMARY KEY AUTOINCREMENT,\
+            瀹¤绫诲埆     TEXT,\
+            瀹¤骞村害     TEXT,\
+            瀹¤鍗曚綅     TEXT,\
+            瀹¤鏂瑰紡     TEXT,\
+            璐d换涓讳綋鍚嶇О     TEXT,\
+            瀹¤椤圭洰     TEXT,\
+            瀹¤椤圭洰鍚嶇О     TEXT,\
+            闂绫诲埆     TEXT,\
+            闂瀹氭��     TEXT,\
+            闂鎻忚堪     TEXT,\
+            闂瀹氭�ф硶瑙勪緷鎹�     TEXT,\
+瀹¤鍙戠幇闂閲戦瀹氭��     TEXT,\
+瀹¤鍙戠幇闂涓暟瀹氭��     TEXT,\
+            娑夊強閲戦     REAL,\
+            闂鎻忚堪浣愯瘉璧勬枡     TEXT,\
+            瀹¤鏈熼棿宸叉暣鏀�     TEXT,\
+            鏁存敼閲戦     REAL,\
+            鏁存敼鎯呭喌1     TEXT,\
+            鏁存敼鎯呭喌浣愯瘉璧勬枡1     TEXT,\
+            鏁存敼缁撴灉     TEXT,\
+            鏁存敼瀹屾垚鏃堕棿     TEXT,\
+            灏氭湭鏁存敼鍒颁綅鐨勫師鍥�     TEXT,\
+            鏁存敼棰勮瀹屾垚鏃堕棿     TEXT,\
+            鏁存敼鎯呭喌2     TEXT,\
+            鏁存敼鎯呭喌浣愯瘉璧勬枡2     TEXT,\
+澶勫垎绫诲瀷     TEXT,\
+澶勫垎浜烘暟     INTEGER,\
+绉婚�佽缁嗕俊鎭�     TEXT,\
+澶勭悊缁撴灉     TEXT,\
+娑夋浜哄憳     INTEGER,\
+            鏁存敼妫�鏌ョ粨鏋淿妫�鏌ユ椂闂�     TEXT,\
+            鏁存敼妫�鏌ョ粨鏋淿妫�鏌ユ柟寮�     TEXT,\
+            鏁存敼妫�鏌ョ粨鏋淿妫�鏌ョ粨鏋�     TEXT,\
+            宸叉暣鏀筥绾犳闂     TEXT,\
+            宸叉暣鏀筥瀹屽杽鍒跺害     TEXT,\
+            宸叉暣鏀筥瀹屾垚鏃堕棿     TEXT,\
+            姝e湪鏁存敼_涓昏鍘熷洜     TEXT,\
+            姝e湪鏁存敼_瀹屾垚鏃堕檺     TEXT,\
+            灏氭湭鏁存敼_涓昏鍘熷洜     TEXT,\
+            灏氭湭鏁存敼_璐d换閮ㄩ棬鎴栬矗浠讳汉     TEXT,\
+            灏氭湭鏁存敼_瀹屾垚鏃堕檺     TEXT,\
+            鏁存敼鎴愭灉_閲戦绫绘暣鏀规垚鏋�     TEXT,\
+            鏁存敼鎴愭灉_閲戦     REAL,\
+            鏁存敼鎴愭灉_闈為噾棰濈被鏁存敼鎴愭灉     TEXT,\
+            鏁存敼鎴愭灉_鏁伴噺     INTEGER,\
+            log_time  TEXT\
+        )").arg(tableName);
+    QSqlQuery query;
+    if(query.exec(sql))
+    {
+        qDebug()<<QString("create %1 ok...").arg(tableName);
+    }else{
+        qDebug()<<QString("create %1 fail...").arg(tableName)<<query.lastError().text();
+    }
 }
 
 void SearchInfo::createTableHasEvidences(QString tableName)
@@ -135,7 +445,8 @@
             code      TEXT,\
             num       INTEGER,\
             evidences TEXT,\
-            com_id  INTEGER\
+            com_id  INTEGER,\
+            time     TEXT\
         )").arg(tableName);
     QSqlQuery query;
     if(query.exec(sql))
@@ -153,7 +464,8 @@
             kpi_name TEXT,\
             code     TEXT,\
             num      INTEGER,\
-            com_id  INTEGER\
+            com_id  INTEGER,\
+            time     TEXT\
         )").arg(tableName);
     QSqlQuery query;
     if(query.exec(sql))
@@ -172,7 +484,8 @@
             code     TEXT,\
             unit     TEXT,\
             num      INTEGER,\
-            com_id  INTEGER\
+            com_id  INTEGER,\
+            time     TEXT\
         )").arg(tableName);
     QSqlQuery query;
     if(query.exec(sql))
@@ -186,14 +499,16 @@
 void SearchInfo::searchComName()
 {
     QSqlQuery query;
-    QString sql = QString("select id,name from company_info");
+    QString sql = QString("select id,name,code from company_info");
     if(query.exec(sql)){
         qDebug()<<"size:"<<query.numRowsAffected();
         while(query.next()){
             int id = query.value(0).toInt();
             QString name = query.value(1).toString();
+            QString code = query.value(2).toString();
             qDebug()<<"com select:"<<id<<name;
             m_comInfo[name] = id;
+            m_comCode[name] = code;
             ui->comboBox_company->addItem(name);
         }
     }
@@ -216,12 +531,33 @@
     return resultSet;
 }
 
+void SearchInfo::setLabels()
+{
+    QStringList labels,labels2,labels3;
+    labels<<"ID"<<"鎸囨爣鍚嶇О"<<"浠g爜"<<"鏁伴噺"<<"鍏徃缂栧彿"<<"瀹¤鏃堕棿"<<" ";
+    labels2<<"ID"<<"鎸囨爣鍚嶇О"<<"浠g爜"<<"鍗曚綅"<<"鏁伴噺"<<"鍏徃缂栧彿"<<"瀹¤鏃堕棿";
+    labels3<<"ID"<<"鎸囨爣鍚嶇О"<<"浠g爜"<<"鏁伴噺"<<"浣愯瘉"<<"鍏徃缂栧彿"<<"瀹¤鏃堕棿";
+    m_labels["瀹¤椤圭洰"] = labels;
+    m_labels["鍐呭宸ヤ綔閲�"] = labels;
+    m_labels["闂閲戦"] = labels3;
+    m_labels["闂涓暟"] = labels3;
+    m_labels["闂鏁存敼"] = labels3;
+    m_labels["闂鏁存敼--闈為噾棰�"] = labels3;
+    m_labels["澶勫垎"] = labels;
+    m_labels["妗堜欢绾跨储"] = labels2;
+}
+
 void SearchInfo::on_pushButton_search_clicked()
 {
     // 鑾峰彇淇℃伅锛岀劧鍚庢煡璇�
     QString item = ui->comboBox->currentText();
     QString comName = ui->comboBox_company->currentText();
     QString sql = QString("select * from %1 where com_id=%2").arg(m_itemAndTable[item]).arg(m_comInfo[comName]);
+    if(ui->checkBox->isChecked()){ // 鍕鹃�変箣鍚�
+        sql = QString("select * from %1 where com_id=%2 and time between '%3' and '%4'").arg(m_itemAndTable[item]).arg(m_comInfo[comName])
+                .arg(ui->dateEdit_begin->date().toString("yyyy-MM-dd"))
+                .arg(ui->dateEdit_end->date().toString("yyyy-MM-dd"));
+    }
     qDebug()<<__FUNCTION__<<sql;
     QSqlQuery query;
     if(query.exec(sql)){
@@ -232,11 +568,12 @@
             rowCnt++;
             m_model->setRowCount(rowCnt);
             qDebug()<<query.value(0).toInt();
-            m_model->setItem(rowCnt-1,0,new QStandardItem(query.value(0).toString()));
-            m_model->setItem(rowCnt-1,1,new QStandardItem(query.value(1).toString()));
-            m_model->setItem(rowCnt-1,2,new QStandardItem(query.value(2).toString()));
-            m_model->setItem(rowCnt-1,3,new QStandardItem(query.value(3).toString()));
-            m_model->setItem(rowCnt-1,4,new QStandardItem(query.value(4).toString()));
+            for(int i=0;i<7;++i){
+                if(query.value(i).isValid()){
+                    m_model->setItem(rowCnt-1,i,new QStandardItem(query.value(i).toString()));
+                }
+            }
+
         }
     }
 
@@ -244,6 +581,14 @@
 
 void SearchInfo::on_pushButton_export_clicked()
 {
+    if(ui->comboBox_company->currentText() == "鍏徃鍚嶇О"){
+        QMessageBox::information(this,"瀵煎嚭閿欒","璇烽�夋嫨涓�涓叕鍙稿悕鍐嶅鍑�");
+        return;
+    }
+    if(ui->label_excel_path->text().size() < 5){
+        QMessageBox::information(this,"瀵煎嚭璁剧疆閿欒","璇峰厛鍦ㄢ�滃鍑鸿缃�濋�夋嫨妯℃澘鍙婁繚瀛樻枃浠剁殑璺緞淇℃伅");
+        return;
+    }
     // 姣忎竴寮犺〃鎷挎渶鏂扮殑閭d竴鎵规暟鎹嵆鍙紝鐒跺悗淇濆瓨鍒扮數瀛愯〃鏍间腑
     int comId = m_comInfo[ui->comboBox_company->currentText()];
     QString audit_project = QString("select kpi_name,code,num from %2 where com_id=%1 limit 10").arg(comId).arg("audit_project");
@@ -265,4 +610,164 @@
     QVector<QVector<QString>> punish_res = getResult(punish,3);
     qDebug()<<audit_project_res.size()<<punish_res.size();
 
+    // 鎿嶄綔excel
+    // 鍒涘缓鏂扮殑鐢靛瓙琛ㄦ牸
+//    QAxObject* excel = new QAxObject("Excel.Application");  // 鍒涘缓Excel瀵硅薄
+//    excel->setProperty("Visible", false);  // 璁剧疆Excel涓嶅彲瑙�
+//    QAxObject* workbooks = excel->querySubObject("Workbooks");  // 鑾峰彇鎵�鏈夊伐浣滅翱
+//    QAxObject* workbook = workbooks->querySubObject("Add");  // 娣诲姞鏂板伐浣滅翱
+//    QAxObject* worksheets = workbook->querySubObject("Worksheets");  // 鑾峰彇鎵�鏈夊伐浣滆〃
+//    QAxObject* worksheet = worksheets->querySubObject("Item(int)", 1);  // 鑾峰彇绗竴涓伐浣滆〃
+ //   for (int i = 1; i <= 61; i++) {
+
+//        for (int j = 1; j <= 5; j++) {
+//            QString cellValue = "Value";  // 璁剧疆瑕佸啓鍏ョ殑鍗曞厓鏍煎��
+//            worksheet->querySubObject("Cells(int, int)", i, j)->dynamicCall("SetValue(const QVariant&)", cellValue);  // 鍐欏叆鍗曞厓鏍煎��
+//        }
+    //}
+
+
+    // 鏋勫缓涓�寮犺〃锛�
+//    QString cellValue = "鍗曚綅鍐呴儴瀹¤涓氬姟鎯呭喌琛�";  // 璁剧疆瑕佸啓鍏ョ殑鍗曞厓鏍煎��
+//    worksheet->querySubObject("Cells(int, int)", 1, 1)->dynamicCall("SetValue(const QVariant&)", cellValue);  // 鍐欏叆鍗曞厓鏍煎��
+//    worksheet->querySubObject("Cells(int, int)", 3, 4)->dynamicCall("SetValue(const QVariant&)", "琛�  鍙�:");
+//    worksheet->querySubObject("Cells(int, int)", 3, 5)->dynamicCall("SetValue(const QVariant&)", "鍐呭缁�02琛�");
+
+//    QString path = QDir::currentPath();
+//    qDebug()<<"path:"<<path;
+//    path += "/debug/Data/save2.xls";
+//    qDebug()<<"path:"<<path;
+//    workbook->dynamicCall("SaveAs(const QString&)", path);  // 淇濆瓨宸ヤ綔绨�
+//    workbook->dynamicCall("Close()");  // 鍏抽棴宸ヤ綔绨�
+//    excel->dynamicCall("Quit()");  // 閫�鍑篍xcel搴旂敤绋嬪簭
+//    QMessageBox::information(this,"瀵煎嚭璺緞淇℃伅",path);
+
+    // 鎵撳紑宸插瓨鍦ㄧ殑鐢靛瓙琛ㄦ牸锛岀劧鍚庡線閲屽啓鍏ユ暟鎹�
+    // :/mayi/闄勪欢3_鍐呭缁�02琛╛鍗曚綅鍐呴儴瀹¤涓氬姟鎯呭喌琛�.xls
+
+    QAxObject excel("Excel.Application");
+    excel.setProperty("Visible",false);
+    excel.setProperty("DisplayAlerts",false);
+    //QString str = "D:/Qt/QtP/build-internal_system_v1-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/Data/闄勪欢3_鍐呭缁�02琛╛鍗曚綅鍐呴儴瀹¤涓氬姟鎯呭喌琛�.xls";
+    QString str = ui->label_excel_path->text();
+    qDebug()<<"open:"<<str;
+    qDebug()<<"excel:"<<excel.className();
+    QAxObject * wbs = excel.querySubObject("WorkBooks");
+    QAxObject * wb = wbs->querySubObject("Open(QString&)",str);
+    QAxObject * shs = wb->querySubObject("Sheets"); // WorkSheets 涔熷彲浠�
+    int cnt = shs->property("Count").toInt();
+    qDebug()<<"cnt="<<cnt;
+    for(int i=0;i<cnt;++i){
+        QAxObject * sheet = shs->querySubObject("Item(int)", i+1);
+        QString sheetName = sheet->property("Name").toString();
+        qDebug()<<"sh name:"<<sheetName;
+        // 鐒跺悗鍐嶆搷浣滆〃鍐呯殑鏁版嵁
+        QAxObject *usedRange = sheet->querySubObject("UsedRange");
+        int rows = usedRange->querySubObject("Rows")->property("Count").toInt();
+        int columns = usedRange->querySubObject("Columns")->property("Count").toInt();
+        qDebug()<<"r--c:"<<rows<<columns;
+        QVariant  val = usedRange->dynamicCall("Value"); // 鎷垮埌浜岀淮琛ㄦ牸
+        QVariantList valRows = val.toList();
+        qDebug()<<valRows[11].toList().at(4);
+        sheet->querySubObject("Cells(int, int)", 7, 2)->dynamicCall("SetValue(const QVariant&)", ui->comboBox_company->currentText());
+        sheet->querySubObject("Cells(int, int)", 6, 2)->dynamicCall("SetValue(const QVariant&)", m_comCode[ui->comboBox_company->currentText()]);
+
+        // 鍐欏叆瀹¤椤圭洰 涓�
+        qDebug()<<"size:"<<audit_project_res.size();
+        QString it = audit_project_res[0][2];
+        //sheet->querySubObject("Cells(int, int)", 13, 5)->dynamicCall("SetValue(doubule)", 4.5);
+        for(int i=0;i<audit_project_res.size();++i){
+            sheet->querySubObject("Cells(int, int)", 11+i, 5)->dynamicCall("SetValue(const QVariant&)", audit_project_res[i][2].toDouble());
+        }
+
+        // 鍐欏叆瀹¤宸ヤ綔閲� 浜�
+        for(int i=0;i<audit_workload_res.size();++i){
+            sheet->querySubObject("Cells(int, int)", 21+i, 5)->dynamicCall("SetValue(const QVariant&)", audit_workload_res[i][2].toDouble());
+        }
+        // 鍐欏叆闂閲戦 涓�
+        for(int i=0;i<problem_money_res.size();++i){
+            sheet->querySubObject("Cells(int, int)", 22+i, 5)->dynamicCall("SetValue(const QVariant&)", problem_money_res[i][2].toDouble());
+        }
+        // 鍐欏叆闂涓暟 鍥�
+        for(int i=0;i<problem_count_res.size();++i){
+            sheet->querySubObject("Cells(int, int)", 33+i, 5)->dynamicCall("SetValue(const QVariant&)", problem_count_res[i][2].toDouble());
+        }
+        // 鍐欏叆闂鏁存敼(閲戦) 浜�
+        for(int i=0;i<problem_rectification_res.size();++i){
+            sheet->querySubObject("Cells(int, int)", 40+i, 5)->dynamicCall("SetValue(const QVariant&)", problem_rectification_res[i][2].toDouble());
+        }
+        // 鍐欏叆闂鏁存敼(闈為噾棰�) 鍏�
+        for(int i=0;i<problem_no_money_res.size();++i){
+            sheet->querySubObject("Cells(int, int)", 47+i, 5)->dynamicCall("SetValue(const QVariant&)", problem_no_money_res[i][2].toDouble());
+        }
+        // 鍐欏叆澶勫垎 涓�
+        for(int i=0;i<punish_res.size();++i){
+            sheet->querySubObject("Cells(int, int)", 52+i, 5)->dynamicCall("SetValue(const QVariant&)", punish_res[i][2].toDouble());
+        }
+        // 鍐欏叆妗堜欢绾跨储 鍏�
+        for(int i=0;i<case_clue_res.size();++i){
+            sheet->querySubObject("Cells(int, int)", 56+i, 5)->dynamicCall("SetValue(const QVariant&)", case_clue_res[i][2].toDouble());
+        }
+
+
+    }
+    //wb->dynamicCall("Save()");  // 鑻ユ枃浠跺凡瀛樺湪锛屽垯鐩存帴淇濆瓨
+    //wb->dynamicCall("SaveAs(const QString&)", str);  // 淇濆瓨宸ヤ綔绨匡紝鑻ユ枃浠朵笉瀛樺湪锛屽垯甯﹀悕瀛椾繚瀛�
+    if(ui->lineEdit_excel_save->text().size() > 1){
+        wb->dynamicCall("SaveAs(const QString&)", ui->lineEdit_excel_save->text());  // 淇濆瓨宸ヤ綔绨匡紝鑻ユ枃浠朵笉瀛樺湪锛屽垯甯﹀悕瀛椾繚瀛�
+        qDebug()<<"淇濆瓨鍒版柊鏂囦欢涓�";
+    }else{
+        wb->dynamicCall("Save()"); // 鐩存帴淇濆瓨鍒版ā鏉挎枃浠朵腑
+        qDebug()<<"淇濆瓨鍒拌�佹枃浠朵腑";
+    }
+
+    wbs->dynamicCall("Close()");
+    excel.dynamicCall("Quit(void)");
+    QMessageBox::information(this,"瀵煎嚭鎴愬姛",QString("瀵煎嚭鎴愬姛锛屾枃浠惰矾寰勪负:%1").arg(ui->lineEdit_excel_save->text()));
+
+
+}
+
+void SearchInfo::on_comboBox_currentIndexChanged(const QString &arg1)
+{
+     m_model->setHorizontalHeaderLabels(m_labels[arg1]);
+}
+
+void SearchInfo::on_toolButton_seleceExcel_clicked()
+{
+    if(ui->comboBox_company->currentText() == "鍏徃鍚嶇О"){
+        QMessageBox::information(this,"瀵煎嚭璁剧疆閿欒","璇烽�夋嫨涓�涓叕鍙稿悕鍐嶈缃�");
+        return;
+    }
+    QString path = QFileDialog::getOpenFileName(this,"閫夋嫨琛ㄦ牸妯℃澘:鍗曚綅鍐呴儴瀹¤涓氬姟鎯呭喌琛�","./","excel(*鍗曚綅鍐呴儴瀹¤涓氬姟鎯呭喌琛�.xls)");
+    if(path.isNull()) return;
+    ui->label_excel_path->setText(path);
+    QStringList paths = path.split(".");
+    QString newPath = paths.at(0)+"_"+ui->comboBox_company->currentText()+"."+paths.at(1);
+    ui->lineEdit_excel_save->setText(newPath);
+}
+
+void SearchInfo::on_comboBox_company_currentIndexChanged(const QString &arg1)
+{
+    if(ui->lineEdit_excel_save->text().size() > 5){
+        QStringList paths = ui->label_excel_path->text().split(".");
+        QString newPath = paths.at(0)+"_"+arg1+"."+paths.at(1);
+        ui->lineEdit_excel_save->setText(newPath);
+    }
+}
+
+void SearchInfo::addComName(QString name)
+{
+    ui->comboBox_company->addItem(name);
+}
+
+void SearchInfo::on_checkBox_clicked()
+{
+    if(ui->checkBox->isChecked()){
+        ui->dateEdit_begin->setEnabled(true);
+        ui->dateEdit_end->setEnabled(true);
+    }else{
+        ui->dateEdit_begin->setEnabled(false);
+        ui->dateEdit_end->setEnabled(false);
+    }
 }

--
Gitblit v1.8.0