From efddb5166089573f9b2508d30b217ddebbb2fab2 Mon Sep 17 00:00:00 2001
From: wumu <mayi@mayi.com>
Date: 星期二, 08 十月 2024 22:48:55 +0800
Subject: [PATCH] 1008

---
 internal_system_v1/converinfo2.cpp |  773 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 751 insertions(+), 22 deletions(-)

diff --git a/internal_system_v1/converinfo2.cpp b/internal_system_v1/converinfo2.cpp
index 5207561..0ed41dc 100644
--- a/internal_system_v1/converinfo2.cpp
+++ b/internal_system_v1/converinfo2.cpp
@@ -15,8 +15,11 @@
     ui->setupUi(this);
     m_menu = nullptr;
     //initUi();
-    readInfo(); // 鍔犺浇琛ㄦ牸
+    //readInfo(); // 鍔犺浇琛ㄦ牸
     addMenu(); // 澧炲姞鑿滃崟
+
+    // 鑷�傚簲澶勭悊
+    ui->treeWidget->header()->setSectionResizeMode(QHeaderView::ResizeToContents);
 }
 
 ConverInfo2::~ConverInfo2()
@@ -46,7 +49,7 @@
     it4->setCheckState(0,Qt::Checked);
 
     // 澶嶉�夋鐘舵�佸鐞�
-    connect(ui->treeWidget,QOverload<QTreeWidgetItem*,int>::of(QTreeWidget::itemClicked),this,[=](QTreeWidgetItem* it,int index){
+    connect(ui->treeWidget,QOverload<QTreeWidgetItem*,int>::of(&QTreeWidget::itemClicked),this,[=](QTreeWidgetItem* it,int index){
         qDebug()<<it<<index;
         if(it == top1){
             qDebug()<<"鐐瑰嚮浜嗙爜铓侀泦鍥�";
@@ -99,6 +102,12 @@
 {
     QString name = index.model()->data(index).toString();
     qDebug()<<"鍙屽嚮"<<index<<name;
+    if(name.contains("(鏈骇)")){
+        QStringList sps = name.split("(鏈骇)");
+        name = sps.at(0);
+    }else if(name.contains("(姹囨��)")){
+        name = name.split("(姹囨��)").at(0);
+    }
     ComInfo curCominfo = m_nameAndComInfos[name];
     // 涓�銆佸崟浣嶅熀鏈儏鍐�
     ui->lineEdit_creditCode->setText(curCominfo.creditCode);
@@ -200,18 +209,28 @@
         it.next();
         list.append(it.fileInfo().absoluteFilePath());
     }
+    int allSize = list.size();
+    float cntIdx=1.0;
     foreach(QString str, list)
     {
         qDebug() << str;
         int index = str.indexOf("鍐呭缁�01琛�");
         qDebug()<<"index:"<<index;
+
+
         if(index > 0){
-            QAxObject excel("Excel.Application");
+            QAxObject excel("ket.Application");
+            if(!excel.setControl("ket"
+                                 ".Application")){  // windows鍐呮牳
+                excel.setControl("Excel.Application"); // wps鍐呮牳
+            }
             excel.setProperty("Visible",false);
             excel.setProperty("DisplayAlerts",false);
+
             qDebug()<<"open:"<<str;
             qDebug()<<"excel:"<<excel.className();
             QAxObject * wbs = excel.querySubObject("WorkBooks");
+            qDebug()<<"wbs:"<<wbs->className();
             QAxObject * wb = wbs->querySubObject("Open(QString&)",str);
             //QAxObject* pWorkBook = excel.querySubObject("ActiveWorkBook");
             //QAxObject* pWorkSheets = pWorkBook->querySubObject("Sheets");//鑾峰彇宸ヤ綔琛�
@@ -235,16 +254,16 @@
                 QVariant  val = usedRange->dynamicCall("Value"); // 鎷垮埌浜岀淮琛ㄦ牸
                 QVariantList valRows = val.toList();
                 // 閬嶅巻姣忎竴椤�
-                for(int i=0;i<rows;++i){
-                    QVariantList valrow = valRows[i].toList();
-                    for(int j=0;j<columns;++j){
-                        QVariant valData = valrow[j];
-                        if(valData.isValid()){
-                            qDebug()<<"val:"<< i<< j << valData;
-                        }
+//                for(int i=0;i<rows;++i){
+//                    QVariantList valrow = valRows[i].toList();
+//                    for(int j=0;j<columns;++j){
+//                        QVariant valData = valrow[j];
+//                        if(valData.isValid()){
+//                            qDebug()<<"val:"<< i<< j << valData;
+//                        }
 
-                    }
-                }
+//                    }
+//                }
 
                 // 瀹炰緥鍖栫粨鏋勪綋锛岀劧鍚庢尐涓祴鍊�
                 ComInfo curComInfo;
@@ -259,8 +278,8 @@
                 QVariant name = valRows[9].toList().at(8);
                 if(name.isValid()){
                     ui->label_name->setText(name.toString());
-                    QTreeWidgetItem *top1 = new QTreeWidgetItem(ui->treeWidget);
-                    top1->setText(0,name.toString());
+                    //QTreeWidgetItem *top1 = new QTreeWidgetItem(ui->treeWidget);
+                    //top1->setText(0,name.toString());
                     strcpy(curComInfo.name,name.toString().toLocal8Bit().data());
 
                 }else{
@@ -677,14 +696,37 @@
                 // 鏈�鍚庡瓨鍒癿ap涓�
                 m_nameAndComInfos[name.toString()]=curComInfo;
 
+                // 娣诲姞鏍戝舰鍒楄〃鑺傜偣
+                //addTreeWidgetNode(upName,name);
+
+                if(upName.isValid()){
+                    if(name.isValid()){
+                        m_treeNodes[upName.toString()].push_back(name.toString());
+                    }
+                }else{
+                    if(name.isValid()){
+                        m_treeNodes[name.toString()].push_back(name.toString());
+                    }
+                }
+
             }
             wbs->dynamicCall("Close()");
             excel.dynamicCall("Quit(void)");
 
+
+
             qDebug()<<"鍗曚綅淇℃伅鏁伴噺锛�"<<m_nameAndComInfos.size();
         }
+
+        // 鎺у埗鏄剧ず杩涘害鐩稿叧
+        emit loadProgress((cntIdx/allSize)*100);
+        cntIdx++;
     }
 
+    createTreeNode(); // 鏋勫缓鏍戝舰鑺傜偣
+
+    // 鍙戝皠 鍔犺浇瀹屾垚鐨勪俊鍙�
+    emit loadFinished();
 
 //    QAxObject excel("./debug/Data/闄勪欢2_鍐呭缁�01琛╛鍗曚綅鍙婂唴閮ㄥ璁℃満鏋勫熀鏈儏鍐佃〃-1.301鐗�(1).xls");
 //    excel.setProperty("Visible",true);
@@ -786,7 +828,17 @@
     qDebug()<<"缁熻璐熻矗浜�"<<statisticalConOfficer;
 
     // 鏇存柊鍒癿ap涓�
+    if(m_nameAndComInfos.count(name)==0){
+        // 娣诲姞鍒癿ap涓�
+        m_nameAndComInfos[name]=ComInfo();
+        // 娣诲姞鍒板彸杈规爲閮ㄤ欢涓�
+        QTreeWidgetItem *top1 = new QTreeWidgetItem(ui->treeWidget);
+        top1->setText(0,name);
+    }
     auto &curComInfo = m_nameAndComInfos[name];
+
+
+
     strcpy(curComInfo.creditCode,creditCode.toLocal8Bit().data());
     strcpy(curComInfo.name,name.toLocal8Bit().data());
     strcpy(curComInfo.comType,comType.toLocal8Bit().data());
@@ -796,20 +848,20 @@
     strcpy(curComInfo.areaCode,areaCode.toLocal8Bit().data());
     strcpy(curComInfo.townCode,townCode.toLocal8Bit().data());
     strcpy(curComInfo.scale,scale.toLocal8Bit().data());
-    curComInfo.people = people.toInt();
+    curComInfo.people = people.toInt();  // index 10
     strcpy(curComInfo.representative,representative.toLocal8Bit().data());
     strcpy(curComInfo.standardType,standardType.toLocal8Bit().data());
     strcpy(curComInfo.trunkCode,trunkCode.toLocal8Bit().data());
     strcpy(curComInfo.fixedTel,fixedTel.toLocal8Bit().data());
     strcpy(curComInfo.postCode,postCode.toLocal8Bit().data());
     strcpy(curComInfo.email,email.toLocal8Bit().data());
-    strcpy(curComInfo.webSite,webSite.toLocal8Bit().data());
+    strcpy(curComInfo.webSite,webSite.toLocal8Bit().data());  // index 17
 
     // 浜�
     strcpy(curComInfo.hasUpLegal,hasUpLegal.toLocal8Bit().data());
     strcpy(curComInfo.upCreditCode,upCreditCode.toLocal8Bit().data());
     strcpy(curComInfo.oldCreditCode,oldCreditCode.toLocal8Bit().data());
-    strcpy(curComInfo.upName,upName.toLocal8Bit().data());
+    strcpy(curComInfo.upName,upName.toLocal8Bit().data());  // index 21
 
     // 涓�
     strcpy(curComInfo.hasChiefDesigner,hasChiefDesigner.toLocal8Bit().data());
@@ -819,15 +871,15 @@
     strcpy(curComInfo.internalName,internalName.toLocal8Bit().data());
     strcpy(curComInfo.leadingOrganization,leadingOrganization.toLocal8Bit().data());
     strcpy(curComInfo.hasSetSeparateIA,hasSetSeparateIA.toLocal8Bit().data());
-    curComInfo.financeDepartment = financeDepartment;
+    curComInfo.financeDepartment = financeDepartment; // index 29
     curComInfo.legalDepartment = legalDepartment;
     curComInfo.internalConDepart = internalConDepart;
     curComInfo.disceplineInDepart = disceplineInDepart;
     curComInfo.otherDepart = otherDepart;
-    strcpy(curComInfo.intavalAuditLeval,intavalAuditLeval.toLocal8Bit().data());
+    strcpy(curComInfo.intavalAuditLeval,intavalAuditLeval.toLocal8Bit().data()); // index 34
 
     // 鍥�
-    curComInfo.organazationNum = organazationNum;
+    curComInfo.organazationNum = organazationNum; // index 35
     curComInfo.realNum = realNum;
     curComInfo.professionalNum = professionalNum;
     curComInfo.CIANum = CIANum;
@@ -848,19 +900,20 @@
     curComInfo.managerNum = managerNum;
     curComInfo.itNum = itNum;
     curComInfo.engineeringNum = engineeringNum;
-    curComInfo.otherNum = otherNum;
+    curComInfo.otherNum = otherNum;  // index 56
 
     // 鍚�4涓俊鎭�
     strcpy(curComInfo.statisticalConOfficer,statisticalConOfficer.toLocal8Bit().data());
     strcpy(curComInfo.personFilling,personFilling.toLocal8Bit().data());
     strcpy(curComInfo.officerTel,officerTel.toLocal8Bit().data());
-    strcpy(curComInfo.fillingDateTime,fillingDateTime.toLocal8Bit().data());
+    strcpy(curComInfo.fillingDateTime,fillingDateTime.toLocal8Bit().data()); // index 60
 
 
     // 鏇存柊鍒版暟鎹簱
 
     // 鍏堝垽鏂槸涓嶆槸宸茬粡瀛樺湪鍏徃鍚嶄簡锛岃嫢宸插瓨鍦紝鍒欐洿鏂帮紝涓嶅瓨鍦ㄥ垯鎻掑叆
     QString sql = QString("select id,name from all_company_info where name='%1'").arg(name);
+    qDebug()<<"sql:"<<sql;
     QSqlQuery query;
     int rowCnt = 0;
     if(query.exec(sql)){
@@ -872,7 +925,683 @@
     }
     if(rowCnt == 0){
         // 涓嶅瓨鍦紝鍒欐彃鍏ヤ竴鏉℃柊鏁版嵁
+        qDebug()<<"涓嶅瓨鍦�:"<<name;
+        sql = QString("insert into all_company_info (name,\
+code,\
+鏈烘瀯绫诲瀷,\
+涓昏涓氬姟娲诲姩,\
+琛屼笟浠g爜,\
+鍗曚綅娉ㄥ唽鍦板強鍖哄煙,\
+鍖哄煙浠g爜,\
+鍩庝埂浠g爜,\
+鍗曚綅瑙勬ā,\
+浠庝笟鏈熸湯浜烘暟,\
+娉曞畾浠h〃浜�,\
+鎵ц浼氳鏍囧噯绫诲埆,\
+闀块�斿尯鍙�,\
+鍥哄畾鐢佃瘽,\
+閭斂缂栫爜,\
+鐢靛瓙閭,\
+缃戝潃,\
+鏄惁鏈変笂涓�绾ф硶浜�,\
+涓婁竴绾х粺淇′唬鐮�,\
+鍘熺粍缁囦唬鐮�,\
+涓婄骇鍗曚綅鍚嶇О,\
+鏄惁璁剧疆鎬诲璁″笀,\
+鎬诲璁″笀鑱屼綅灞傜骇,\
+鎬诲浠昏亴鏂瑰紡,\
+鏄惁璁剧疆鍐呭鏈烘瀯,\
+鍐呭鏈烘瀯鍚嶇О,\
+棰嗗鏈烘瀯,\
+鏄惁鐙珛璁剧疆鍐呭鏈烘瀯,\
+璐㈠姟閮ㄩ棬,\
+娉曞姟閮ㄩ棬,\
+鍐呴儴鎺у埗閮ㄩ棬,\
+绾閮ㄩ棬,\
+鍏朵粬閮ㄩ棬,\
+鍐呭灞傜骇,\
+缂栧埗鏁伴噺,\
+瀹炴湁浜烘暟閲�,\
+涓撹亴浜哄憳鏁伴噺,\
+鎷ユ湁CIA浜烘暟,\
+纭曞+瀛﹀巻浠ヤ笂浜烘暟,\
+鏈浜烘暟,\
+涓撶鍙婁互涓嬩汉鏁�,\
+楂樼骇鑱岀О浜烘暟,\
+涓骇鑱岀О浜烘暟,\
+鍒濈骇鑱岀О浜烘暟,\
+鏃犺亴绉颁汉鏁�,\
+浜斿崄宀佷互涓婁汉鏁�,\
+涓夊崄鑷充簲鍗佸瞾宀佷汉鏁�,\
+涓夊崄宀佷互涓嬩汉鏁�,\
+瀹¤鏁伴噺,\
+浼氳鏁伴噺,\
+缁忔祹鏁伴噺,\
+娉曞緥鏁伴噺,\
+绠$悊鏁伴噺,\
+淇℃伅鎶�鏈暟閲�,\
+宸ョ▼鏁伴噺,\
+鍏朵粬鏁伴噺,\
+缁熻璐熻矗浜�,\
+濉〃浜�,\
+鑱旂郴鐢佃瘽,\
+濉姤鏃ユ湡) values ('%1','%2','%3','%4','%5','%6','%7','%8','%9',%10,\
+'%11','%12','%13','%14','%15','%16','%17','%18','%19','%20',\
+'%21','%22','%23','%24','%25','%26','%27','%28',%29,%30,\
+%31,%32,%33,'%34',%35,%36,%37,%38,%39,%40,\
+%41,%42,%43,%44,%45,%46,%47,%48,%49,%50,\
+%51,%52,%53,%54,%55,%56,'%57','%58','%59','%60'\
+)").arg(name).arg(creditCode).arg(comType).arg(business).arg(businessCode).arg(addr).arg(areaCode).arg(townCode).arg(scale).arg(people).
+                arg(representative).arg(standardType).arg(trunkCode).arg(fixedTel).arg(postCode).arg(email).arg(webSite).arg(hasUpLegal).arg(upCreditCode).arg(oldCreditCode).
+                arg(upName).arg(hasChiefDesigner).arg(ChiefDesignerLevel).arg(employmentMode).arg(hasSetIntervalAudit).arg(internalName).arg(leadingOrganization).arg(hasSetSeparateIA).arg(financeDepartment).arg(legalDepartment).
+                arg(internalConDepart).arg(disceplineInDepart).arg(otherDepart).arg(intavalAuditLeval).arg(organazationNum).arg(realNum).arg(professionalNum).arg(CIANum).arg(masterNum).arg(undergraduatesNum).
+                arg(juniorNum).arg(seniorNum).arg(intermediateNum).arg(primaryNum).arg(noTitleNum).arg(upFiftyOldNum).arg(upThirtyOldNum).arg(downThirtyOldNum).arg(auditNum).arg(accountingNum).
+                arg(economyNum).arg(lawNum).arg(managerNum).arg(itNum).arg(engineeringNum).arg(otherNum).arg(statisticalConOfficer).arg(personFilling).arg(officerTel).arg(fillingDateTime);
+
+
+        qDebug()<<"sql insert:"<<sql;
+        if(query.exec(sql)){
+            qDebug()<<"insert ok";
+        }else{
+            qDebug()<<"insert fail:"<<query.lastError().text();
+        }
+
     }else{
         // 鏇存柊
+        qDebug()<<"瀛樺湪:"<<name;
+        sql = QString("update all_company_info set name='%1',code='%2',鏈烘瀯绫诲瀷='%3',涓昏涓氬姟娲诲姩='%4',琛屼笟浠g爜='%5',鍗曚綅娉ㄥ唽鍦板強鍖哄煙='%6',鍖哄煙浠g爜='%7',鍩庝埂浠g爜='%8',鍗曚綅瑙勬ā='%9',浠庝笟鏈熸湯浜烘暟=%10\
+,娉曞畾浠h〃浜�='%11',鎵ц浼氳鏍囧噯绫诲埆='%12',闀块�斿尯鍙�='%13',鍥哄畾鐢佃瘽='%14',閭斂缂栫爜='%15',鐢靛瓙閭='%16',缃戝潃='%17',鏄惁鏈変笂涓�绾ф硶浜�='%18',涓婁竴绾х粺淇′唬鐮�='%19',鍘熺粍缁囦唬鐮�='%20'\
+,涓婄骇鍗曚綅鍚嶇О='%21',鏄惁璁剧疆鎬诲璁″笀='%22',鎬诲璁″笀鑱屼綅灞傜骇='%23',鎬诲浠昏亴鏂瑰紡='%24',鏄惁璁剧疆鍐呭鏈烘瀯='%25',鍐呭鏈烘瀯鍚嶇О='%26',棰嗗鏈烘瀯='%27',鏄惁鐙珛璁剧疆鍐呭鏈烘瀯='%28',璐㈠姟閮ㄩ棬=%29,娉曞姟閮ㄩ棬=%30\
+,鍐呴儴鎺у埗閮ㄩ棬=%31,绾閮ㄩ棬=%32,鍏朵粬閮ㄩ棬=%33,鍐呭灞傜骇='%34',缂栧埗鏁伴噺=%35,瀹炴湁浜烘暟閲�=%36,涓撹亴浜哄憳鏁伴噺=%37,鎷ユ湁CIA浜烘暟=%38,纭曞+瀛﹀巻浠ヤ笂浜烘暟=%39,鏈浜烘暟=%40\
+,涓撶鍙婁互涓嬩汉鏁�=%41,楂樼骇鑱岀О浜烘暟=%42,涓骇鑱岀О浜烘暟=%43,鍒濈骇鑱岀О浜烘暟=%44,鏃犺亴绉颁汉鏁�=%45,浜斿崄宀佷互涓婁汉鏁�=%46,涓夊崄鑷充簲鍗佸瞾宀佷汉鏁�=%47,涓夊崄宀佷互涓嬩汉鏁�=%48,瀹¤鏁伴噺=%49,浼氳鏁伴噺=%50\
+,缁忔祹鏁伴噺=%51,娉曞緥鏁伴噺=%52,绠$悊鏁伴噺=%53,淇℃伅鎶�鏈暟閲�=%54,宸ョ▼鏁伴噺=%55,鍏朵粬鏁伴噺=%56,缁熻璐熻矗浜�='%57',濉〃浜�='%58',鑱旂郴鐢佃瘽='%59',濉姤鏃ユ湡='%60'").
+                arg(name).arg(creditCode).arg(comType).arg(business).arg(businessCode).arg(addr).arg(areaCode).arg(townCode).arg(scale).arg(people).
+                arg(representative).arg(standardType).arg(trunkCode).arg(fixedTel).arg(postCode).arg(email).arg(webSite).arg(hasUpLegal).arg(upCreditCode).arg(oldCreditCode).
+                arg(upName).arg(hasChiefDesigner).arg(ChiefDesignerLevel).arg(employmentMode).arg(hasSetIntervalAudit).arg(internalName).arg(leadingOrganization).arg(hasSetSeparateIA).arg(financeDepartment).arg(legalDepartment).
+                arg(internalConDepart).arg(disceplineInDepart).arg(otherDepart).arg(intavalAuditLeval).arg(organazationNum).arg(realNum).arg(professionalNum).arg(CIANum).arg(masterNum).arg(undergraduatesNum).
+                arg(juniorNum).arg(seniorNum).arg(intermediateNum).arg(primaryNum).arg(noTitleNum).arg(upFiftyOldNum).arg(upThirtyOldNum).arg(downThirtyOldNum).arg(auditNum).arg(accountingNum).
+                arg(economyNum).arg(lawNum).arg(managerNum).arg(itNum).arg(engineeringNum).arg(otherNum).arg(statisticalConOfficer).arg(personFilling).arg(officerTel).arg(fillingDateTime);
+
+        qDebug()<<"update sql:"<<sql;
+        if(query.exec(sql)){
+            qDebug()<<"update ok";
+        }else{
+            qDebug()<<"update fail:"<<query.lastError().text();
+        }
     }
 }
+
+void ConverInfo2::readExcelFromPath(QString path)
+{
+
+    QAxObject excel("ket.Application");
+    if(!excel.setControl("ket"
+                         ".Application")){  // windows鍐呮牳
+        excel.setControl("Excel.Application"); // wps鍐呮牳
+    }
+    excel.setProperty("Visible",false);
+    excel.setProperty("DisplayAlerts",false);
+
+    qDebug()<<"open:"<<path;
+    qDebug()<<"excel:"<<excel.className();
+    QAxObject * wbs = excel.querySubObject("WorkBooks");
+    qDebug()<<"wbs:"<<wbs->className();
+    QAxObject * wb = wbs->querySubObject("Open(QString&)",path);
+    //QAxObject* pWorkBook = excel.querySubObject("ActiveWorkBook");
+    //QAxObject* pWorkSheets = pWorkBook->querySubObject("Sheets");//鑾峰彇宸ヤ綔琛�
+    //QAxObject * shs = wb->querySubObject("Sheets"); // WorkSheets 涔熷彲浠�
+    QAxObject * shs = wb->querySubObject("WorkSheets"); // WorkSheets 涔熷彲浠�
+//            // 鎸囧畾鍗曞厓鏍兼嬁
+//            QAxObject *cell = shs->querySubObject("Cells(int, int)",82,1);
+//            qDebug()<<"Cells:82-0:"<<shs->querySubObject("Cells(int, int)",82,0)->dynamicCall("Value()").toString();
+//            qDebug()<<"Cells:82-1:"<<cell->dynamicCall("Value()").toString();
+
+    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();
+        // 閬嶅巻姣忎竴椤�
+//                for(int i=0;i<rows;++i){
+//                    QVariantList valrow = valRows[i].toList();
+//                    for(int j=0;j<columns;++j){
+//                        QVariant valData = valrow[j];
+//                        if(valData.isValid()){
+//                            qDebug()<<"val:"<< i<< j << valData;
+//                        }
+
+//                    }
+//                }
+
+        // 瀹炰緥鍖栫粨鏋勪綋锛岀劧鍚庢尐涓祴鍊�
+        ComInfo curComInfo;
+
+        // 缁熶竴淇$敤浠g爜
+        QVariant uniCode = valRows[9].toList().at(3);
+        if(uniCode.isValid()){
+            ui->label_creditCode->setText(uniCode.toString());
+            strcpy(curComInfo.creditCode,uniCode.toString().toLocal8Bit().data());
+        }
+        // 鍗曚綅鍚嶇О
+        QVariant name = valRows[9].toList().at(8);
+        if(name.isValid()){
+            ui->label_name->setText(name.toString());
+
+//            // 鑿滃崟鐩稿叧  褰撲笂绾у叕鍙镐负绌轰笂绾ф椂锛岃嚜宸卞綋鑷繁鐨勪笂绾э紝骞朵笖缃楀垪杩涘幓褰� 鏈骇
+//            QTreeWidgetItem *top1 = new QTreeWidgetItem(ui->treeWidget);
+//            top1->setText(0,name.toString());
+
+            strcpy(curComInfo.name,name.toString().toLocal8Bit().data());
+
+        }else{
+            ui->label_name->setText("");
+        }
+        // 鏈烘瀯绫诲瀷
+        QVariant comType = valRows[12].toList().at(3);
+        if(comType.isValid()){
+            ui->label_comType->setText(comType.toString());
+            strcpy(curComInfo.comType,comType.toString().toLocal8Bit().data());
+        }else{
+            ui->label_comType->setText("");
+        }
+        // 涓昏涓氬姟娲诲姩
+        QString business;
+        QVariant first = valRows[18].toList().at(2);
+        if(first.isValid()){
+            business.append(first.toString());
+        }
+        QVariant sec = valRows[18].toList().at(5);
+        if(sec.isValid()){
+            business += "銆�";
+            business.append(sec.toString());
+        }
+        QVariant third = valRows[18].toList().at(8);
+        if(third.isValid()){
+            business += "銆�";
+            business.append(third.toString());
+        }
+        if(business.size() > 0){
+            ui->label_business->setText(business);
+            ui->label_business->setToolTip(business);
+            strcpy(curComInfo.business,business.toLocal8Bit().data());
+        }else{
+            ui->label_business->setText("");
+        }
+        // 涓氬姟浠g爜
+        QVariant busCode = valRows[19].toList().at(4);
+        if(busCode.isValid()){
+            ui->label_businessCode->setText(busCode.toString());
+            strcpy(curComInfo.businessCode,busCode.toString().toLocal8Bit().data());
+        }else{
+            ui->label_businessCode->setText("");
+        }
+        // 娉ㄥ唽鍦板潃
+        QString addr="";
+        QVariant province = valRows[21].toList().at(1); // 鐪佷唤
+        QVariant city = valRows[21].toList().at(4); // 鍩庡競
+        QVariant district = valRows[21].toList().at(7); // 绠¤緰鍖�
+        QVariant village = valRows[22].toList().at(2); // 涔¢晣
+        QVariant street = valRows[22].toList().at(4); // 琛楅亾
+        QVariant Sub = valRows[23].toList().at(2); // 琛楅亾鍔炰簨澶�
+        QVariant committee = valRows[25].toList().at(3); // 灞呭浼�
+        //qDebug()<<province<<city<<district<<village<<street<<Sub<<committee;
+        if(province.isValid()) addr += province.toString();
+        if(city.isValid()) addr += city.toString();
+        if(district.isValid()) addr += district.toString();
+        if(village.isValid()) addr += village.toString();
+        if(street.isValid()) addr += street.toString();
+        if(Sub.isValid()) addr += Sub.toString();
+        if(committee.isValid()) addr += committee.toString();
+        if(addr.size()>10){
+            ui->label_addr->setText(addr);
+            strcpy(curComInfo.addr,addr.toLocal8Bit().data());
+        }else{
+            ui->label_addr->setText("");
+        }
+        // 鍖哄煙浠g爜
+        QVariant areaCode = valRows[24].toList().at(2);
+        if(areaCode.isValid()){
+            ui->label_areaCode->setText(areaCode.toString());
+            strcpy(curComInfo.areaCode,areaCode.toString().toLocal8Bit().data());
+        }else{
+            ui->label_areaCode->setText("");
+        }
+        // 鍩庝埂浠g爜
+        QVariant townCode = valRows[24].toList().at(6);
+        if(townCode.isValid()) {
+            ui->label_townCode->setText(townCode.toString());
+            strcpy(curComInfo.townCode,townCode.toString().toLocal8Bit().data());
+        }else{
+            ui->label_townCode->setText("");
+        }
+
+        // 鍗曚綅瑙勬ā
+        QVariant scale = valRows[25].toList().at(3);
+        if(scale.isValid()){
+            ui->label_scale->setText(scale.toString());
+            strcpy(curComInfo.scale,scale.toString().toLocal8Bit().data());
+        }else{
+            ui->label_scale->setText("");
+        }
+        // 浠庝笟浜烘暟
+        QVariant people = valRows[26].toList().at(6);
+        if(people.isValid()) {
+            ui->label_people->setText(people.toString());
+            //strcpy(curComInfo.people,people.toString().toLocal8Bit().data());
+            curComInfo.people = people.toInt();
+        }else{
+            ui->label_people->setText("");
+        }
+        // 娉曚汉
+        QVariant representative = valRows[27].toList().at(4);
+        if(representative.isValid()) {
+            ui->label_representative->setText(representative.toString());
+            strcpy(curComInfo.representative,representative.toString().toLocal8Bit().data());
+        }else{
+            ui->label_representative->setText("");
+        }
+        // 浼氳鏍囧噯绫诲埆 standardType
+        QVariant standardType = valRows[27].toList().at(8);
+        if(standardType.isValid()){
+            ui->label_standardType->setText(standardType.toString());
+            strcpy(curComInfo.standardType,standardType.toString().toLocal8Bit());
+        }else{
+            ui->label_standardType->setText("");
+        }
+        // 闀块�斿尯鍙�
+        QVariant trunkCode = valRows[31].toList().at(2);
+        if(trunkCode.isValid()){
+            ui->label_trunkCode->setText(trunkCode.toString());
+            strcpy(curComInfo.trunkCode,trunkCode.toString().toLocal8Bit().data());
+        }else{
+            ui->label_trunkCode->setText("");
+        }
+        // 鍥哄畾鐢佃瘽
+        QVariant fixedTel = valRows[32].toList().at(2);
+        if(fixedTel.isValid()) {
+            ui->label_fixedTel->setText(fixedTel.toString());
+            strcpy(curComInfo.fixedTel,fixedTel.toString().toLocal8Bit().data());
+        }else{
+            ui->label_fixedTel->setText("");
+        }
+        // 閭斂缂栫爜
+        QVariant postCode = valRows[33].toList().at(2);
+        if(postCode.isValid()){
+            ui->label_postCode->setText(postCode.toString());
+            strcpy(curComInfo.postCode,postCode.toString().toLocal8Bit().data());
+        }else{
+            ui->label_postCode->setText("");
+        }
+        // 鐢靛瓙閭
+        QVariant email = valRows[30].toList().at(5);
+        if(email.isValid()) {
+            ui->label_email->setText(email.toString());
+            strcpy(curComInfo.email,email.toString().toLocal8Bit().data());
+        }else{
+            ui->label_email->setText("");
+        }
+        // 缃戝潃
+        QVariant webSite = valRows[32].toList().at(5);
+        if(webSite.isValid()) {
+            ui->label_webSite->setText(webSite.toString());
+            strcpy(curComInfo.webSite,webSite.toString().toLocal8Bit().data());
+        }else{
+            ui->label_webSite->setText("");
+        }
+
+        // 浜屻�佸崟浣嶇粍缁囩粨鏋勬儏鍐�
+        // 鏄惁鏈変笂涓�绾ф硶浜�
+        QVariant hasUpLegal = valRows[35].toList().at(4);
+        if(hasUpLegal.isValid()){
+            strcpy(curComInfo.hasUpLegal,hasUpLegal.toString().toLocal8Bit().data());
+            qDebug()<<"has up legal"<<hasUpLegal;
+        }
+        // 涓婄骇娉曚汉鍗曚綅缁熶竴绀句細淇$敤浠g爜
+        QVariant upCreditCode = valRows[36].toList().at(7);
+        if(upCreditCode.isValid()){
+            strcpy(curComInfo.upCreditCode,upCreditCode.toString().toLocal8Bit().data());
+            qDebug()<<"upCreditCode"<<upCreditCode;
+        }else {
+            qDebug()<<"upCreditCode fail"<<name;
+        }
+        // 鍘熺粍缁囨満鏋勪唬鐮�
+        QVariant oldCreditCode = valRows[37].toList().at(7);
+        if(oldCreditCode.isValid()){
+            strcpy(curComInfo.oldCreditCode,oldCreditCode.toString().toLocal8Bit().data());
+            qDebug()<<"oldCreditCode"<<oldCreditCode;
+        }
+        // 涓婁竴绾у崟浣嶈缁嗗悕绉�
+        QVariant upName = valRows[38].toList().at(7);
+        if(upName.isValid()){
+            strcpy(curComInfo.upName,upName.toString().toLocal8Bit().data());
+            qDebug()<<"upName"<<upName;
+        }
+
+        // 鎬诲璁″笀涓庡唴瀹℃満鏋勫熀鏈儏鍐�
+
+        // 鏄惁璁剧疆鎬诲璁″笀
+        QVariant hasChiefDesigner = valRows[40].toList().at(4);
+        if(hasChiefDesigner.isValid()){
+            strcpy(curComInfo.hasChiefDesigner,hasChiefDesigner.toString().toLocal8Bit().data());
+            qDebug()<<"hasChiefDesigner"<<hasChiefDesigner;
+        }
+        // 鎬诲璁″笀鑱屼綅灞傜骇
+        QVariant ChiefDesignerLevel = valRows[41].toList().at(4);
+        if(ChiefDesignerLevel.isValid()){
+            strcpy(curComInfo.ChiefDesignerLevel,ChiefDesignerLevel.toString().toLocal8Bit().data());
+            qDebug()<<"ChiefDesignerLevel"<<ChiefDesignerLevel;
+        }
+        // 鎬诲璁″笀浠昏亴鏂瑰紡
+        QVariant employmentMode = valRows[44].toList().at(4);
+        if(employmentMode.isValid()){
+            strcpy(curComInfo.employmentMode,employmentMode.toString().toLocal8Bit().data());
+            qDebug()<<"employmentMode"<<employmentMode;
+        }
+
+        // 鏄惁璁剧疆鍐呭鏈烘瀯
+        QVariant hasSetIntervalAudit = valRows[47].toList().at(4);
+        if(hasSetIntervalAudit.isValid()){
+            strcpy(curComInfo.hasSetIntervalAudit,hasSetIntervalAudit.toString().toLocal8Bit().data());
+            qDebug()<<"hasSetIntervalAudit"<<hasSetIntervalAudit;
+        }
+        // 鍐呭鏈烘瀯鍚嶇О
+        QVariant internalName = valRows[48].toList().at(4);
+        if(internalName.isValid()){
+            strcpy(curComInfo.internalName,internalName.toString().toLocal8Bit().data());
+            qDebug()<<"internalName"<<internalName;
+        }
+        // 鍐呭宸ヤ綔鐨勯瀵兼満鏋�
+        QVariant leadingOrganization = valRows[49].toList().at(4);
+        if(leadingOrganization.isValid()){
+            strcpy(curComInfo.leadingOrganization,leadingOrganization.toString().toLocal8Bit().data());
+            qDebug()<<"leadingOrganization"<<leadingOrganization;
+        }
+        // 鏄惁鐙珛璁剧疆鍐呭鏈烘瀯
+        QVariant hasSetSeparateIA = valRows[53].toList().at(4);
+        if(hasSetSeparateIA.isValid()){
+            strcpy(curComInfo.hasSetSeparateIA,hasSetSeparateIA.toString().toLocal8Bit().data());
+            qDebug()<<"hasSetSeparateIA"<<hasSetSeparateIA;
+        }
+        // 鍚堝苟璁剧疆 璐㈠姟閮ㄩ棬   澶嶉�夋
+
+        QVariant financeDepartment = valRows[55].toList().at(1);
+        if(financeDepartment.isValid()){
+            //strcpy(curComInfo.financeDepartment,financeDepartment.toString().toLocal8Bit().data());
+            curComInfo.financeDepartment = financeDepartment.toBool();
+            qDebug()<<"financeDepartment"<<financeDepartment;
+        }
+        // 娉曞姟閮ㄩ棬銆佸唴閮ㄦ帶鍒堕儴闂ㄣ�佺邯妫�閮ㄩ棬銆佸叾浠栭儴闂�
+
+        // 鍐呭鏈烘瀯灞傜骇
+        QVariant intavalAuditLeval = valRows[56].toList().at(4);
+        if(intavalAuditLeval.isValid()){
+            strcpy(curComInfo.intavalAuditLeval,intavalAuditLeval.toString().toLocal8Bit().data());
+            qDebug()<<"intavalAuditLeval"<<intavalAuditLeval;
+        }
+
+        // 鍥涖�佸唴瀹′汉鍛橀厤澶囧熀鏈儏鍐�
+        // 缂栧埗鏁�
+        QVariant organazationNum = valRows[56].toList().at(4);
+        if(organazationNum.isValid()){
+            curComInfo.organazationNum = organazationNum.toInt();
+            qDebug()<<"organazationNum"<<organazationNum;
+        }
+        // 瀹炴湁浜哄憳鏁�
+        QVariant realNum = valRows[56].toList().at(4);
+        if(realNum.isValid()){
+            curComInfo.realNum = realNum.toInt();
+            qDebug()<<"realNum"<<realNum;
+        }
+        // 涓撹亴浜哄憳鏁�
+        QVariant professionalNum = valRows[56].toList().at(4);
+        if(professionalNum.isValid()){
+            curComInfo.professionalNum = professionalNum.toInt();
+            qDebug()<<"professionalNum"<<professionalNum;
+        }
+        // 鎷ユ湁CIA浜哄憳鏁�
+        QVariant CIANum = valRows[56].toList().at(4);
+        if(CIANum.isValid()){
+            curComInfo.CIANum = CIANum.toInt();
+            qDebug()<<"CIANum"<<CIANum;
+        }
+        // 瀛﹀巻锛氱澹強浠ヤ笂 浜哄憳鏁�
+        QVariant masterNum = valRows[56].toList().at(4);
+        if(masterNum.isValid()){
+            curComInfo.masterNum = masterNum.toInt();
+            qDebug()<<"masterNum"<<masterNum;
+        }
+        // 澶у鏈
+        QVariant undergraduatesNum = valRows[56].toList().at(4);
+        if(undergraduatesNum.isValid()){
+            curComInfo.undergraduatesNum = undergraduatesNum.toInt();
+            qDebug()<<"undergraduatesNum"<<undergraduatesNum;
+        }
+        // 涓撶鍙婁互涓�
+        QVariant juniorNum = valRows[56].toList().at(4);
+        if(juniorNum.isValid()){
+            curComInfo.juniorNum = juniorNum.toInt();
+            qDebug()<<"juniorNum"<<juniorNum;
+        }
+
+        // 鑱岀О 楂樼骇鑱岀О
+        QVariant seniorNum = valRows[56].toList().at(4);
+        if(seniorNum.isValid()){
+            curComInfo.seniorNum = seniorNum.toInt();
+            qDebug()<<"seniorNum"<<seniorNum;
+        }
+        // 涓骇鑱岀О
+        QVariant intermediateNum = valRows[56].toList().at(4);
+        if(intermediateNum.isValid()){
+            curComInfo.intermediateNum = intermediateNum.toInt();
+            qDebug()<<"intermediateNum"<<intermediateNum;
+        }
+        // 鍒濈骇鑱岀О
+        QVariant primaryNum = valRows[56].toList().at(4);
+        if(primaryNum.isValid()){
+            curComInfo.primaryNum = primaryNum.toInt();
+            qDebug()<<"primaryNum"<<primaryNum;
+        }
+        // 鏃犺亴绉�
+        QVariant noTitleNum = valRows[56].toList().at(4);
+        if(noTitleNum.isValid()){
+            curComInfo.noTitleNum = noTitleNum.toInt();
+            qDebug()<<"noTitleNum"<<noTitleNum;
+        }
+
+        // 骞撮緞缁撴瀯 50宀佷互涓�
+        QVariant upFiftyOldNum = valRows[56].toList().at(4);
+        if(upFiftyOldNum.isValid()){
+            curComInfo.upFiftyOldNum = upFiftyOldNum.toInt();
+            qDebug()<<"upFiftyOldNum"<<upFiftyOldNum;
+        }
+        // 30-50宀�
+        QVariant upThirtyOldNum = valRows[56].toList().at(4);
+        if(upThirtyOldNum.isValid()){
+            curComInfo.upThirtyOldNum = upThirtyOldNum.toInt();
+            qDebug()<<"upThirtyOldNum"<<upThirtyOldNum;
+        }
+        // 30宀佷互涓�
+        QVariant downThirtyOldNum = valRows[56].toList().at(4);
+        if(downThirtyOldNum.isValid()){
+            curComInfo.downThirtyOldNum = downThirtyOldNum.toInt();
+            qDebug()<<"downThirtyOldNum"<<downThirtyOldNum;
+        }
+
+        // 鐭ヨ瘑缁撴瀯 瀹¤
+        QVariant auditNum = valRows[56].toList().at(4);
+        if(auditNum.isValid()){
+            curComInfo.auditNum = auditNum.toInt();
+            qDebug()<<"auditNum"<<auditNum;
+        }
+        // 浼氳
+        QVariant accountingNum = valRows[56].toList().at(4);
+        if(accountingNum.isValid()){
+            curComInfo.accountingNum = accountingNum.toInt();
+            qDebug()<<"accountingNum"<<accountingNum;
+        }
+        // 缁忔祹
+        QVariant economyNum = valRows[56].toList().at(4);
+        if(economyNum.isValid()){
+            curComInfo.economyNum = economyNum.toInt();
+            qDebug()<<"economyNum"<<economyNum;
+        }
+        // 娉曞緥
+        QVariant lawNum = valRows[56].toList().at(4);
+        if(lawNum.isValid()){
+            curComInfo.lawNum = lawNum.toInt();
+            qDebug()<<"lawNum"<<lawNum;
+        }
+        // 绠$悊
+        QVariant managerNum = valRows[56].toList().at(4);
+        if(managerNum.isValid()){
+            curComInfo.managerNum = managerNum.toInt();
+            qDebug()<<"managerNum"<<managerNum;
+        }
+        // 淇℃伅鎶�鏈�
+        QVariant itNum = valRows[56].toList().at(4);
+        if(itNum.isValid()){
+            curComInfo.itNum = itNum.toInt();
+            qDebug()<<"itNum"<<itNum;
+        }
+        // 宸ョ▼
+        QVariant engineeringNum = valRows[56].toList().at(4);
+        if(engineeringNum.isValid()){
+            curComInfo.engineeringNum = engineeringNum.toInt();
+            qDebug()<<"engineeringNum"<<engineeringNum;
+        }
+        // 鍏朵粬
+        QVariant otherNum = valRows[56].toList().at(4);
+        if(otherNum.isValid()){
+            curComInfo.otherNum = otherNum.toInt();
+            qDebug()<<"otherNum"<<otherNum;
+        }
+
+        // 鍚庨潰鐨�4涓俊鎭�
+        // 缁熻璐熻矗浜�
+        QVariant statisticalConOfficer = valRows[81].toList().at(1);
+        if(statisticalConOfficer.isValid()){
+            strcpy(curComInfo.statisticalConOfficer,statisticalConOfficer.toString().toLocal8Bit().data());
+            qDebug()<<"statisticalConOfficer"<<statisticalConOfficer;
+        }else{
+            qDebug()<<"statisticalConOfficer fail:"<<name.toString();
+        }
+        // 濉〃浜�
+        QVariant personFilling = valRows[81].toList().at(4);
+        if(personFilling.isValid()){
+            strcpy(curComInfo.personFilling,personFilling.toString().toLocal8Bit().data());
+            qDebug()<<"personFilling"<<personFilling;
+        }
+        // 鑱旂郴鐢佃瘽
+        QVariant officerTel = valRows[82].toList().at(1);
+        if(officerTel.isValid()){
+            strcpy(curComInfo.officerTel,officerTel.toString().toLocal8Bit().data());
+            qDebug()<<"officerTel"<<officerTel;
+        }
+        // 濉姤鏃ユ湡
+        QVariant fillingDateTime = valRows[82].toList().at(4);
+        if(fillingDateTime.isValid()){
+            strcpy(curComInfo.fillingDateTime,fillingDateTime.toString().toLocal8Bit().data());
+            qDebug()<<"fillingDateTime"<<fillingDateTime;
+        }
+
+        // 鏈�鍚庡瓨鍒癿ap涓�
+        m_nameAndComInfos[name.toString()]=curComInfo;
+
+
+        // 娣诲姞宸﹁竟鏍戝舰鍥剧浉鍏�
+        // 鑿滃崟鐩稿叧  褰撲笂绾у叕鍙镐负绌轰笂绾ф椂锛岃嚜宸卞綋鑷繁鐨勪笂绾э紝骞朵笖缃楀垪杩涘幓褰� 鏈骇
+        addTreeWidgetNode(upName,name);
+
+//        if(upName.isValid()){
+//            if(name.isValid()){
+//                m_treeNodes[upName.toString()].push_back(name.toString());
+//            }
+//        }else{
+//            if(name.isValid()){
+//                m_treeNodes[name.toString()].push_back(name.toString());
+//            }
+//        }
+
+
+    }
+    wbs->dynamicCall("Close()");
+    excel.dynamicCall("Quit(void)");
+
+    qDebug()<<"鍗曚綅淇℃伅鏁伴噺锛�"<<m_nameAndComInfos.size();
+}
+
+void ConverInfo2::createTreeNode(){
+    qDebug()<<"鏋勫缓鏍戝舰鍒楄〃"<<m_treeNodes.size();
+    for(auto iter=m_treeNodes.begin();iter != m_treeNodes.end();iter++)
+    {
+        // 鍏堟瀯寤轰竴涓瘡绾х殑鐖惰妭鐐�
+        addTreeWidgetNode(iter.key(),iter.key());
+        // 鍐嶆坊鍔犲瀛愯妭鐐�
+        for(QString node:iter.value()){
+            qDebug()<<iter.key()<<node;
+            if(iter.key() != node){
+                addTreeWidgetNode(iter.key(),node);
+            }
+        }
+    }
+}
+void ConverInfo2::addTreeWidgetNode(QVariant upName,QVariant name){
+    // 娣诲姞宸﹁竟鏍戝舰鍥剧浉鍏�
+    // 鑿滃崟鐩稿叧  褰撲笂绾у叕鍙镐负绌轰笂绾ф椂锛岃嚜宸卞綋鑷繁鐨勪笂绾э紝骞朵笖缃楀垪杩涘幓褰� 鏈骇
+
+    if(upName.isValid()) // 鏈夋晥
+    {
+        // 鍒ゆ柇椤跺眰鏍戣妭鐐规槸鍚﹀凡缁忓瓨鍦�
+        QTreeWidgetItem *top = nullptr;
+        for(int k=0;k<ui->treeWidget->topLevelItemCount();++k){
+            QTreeWidgetItem *tmp = ui->treeWidget->topLevelItem(k);
+            qDebug()<<k<<tmp->text(0)<<upName.toString();
+            if(upName.toString()+"(姹囨��)" == tmp->text(0)){
+                top = tmp;
+                break;
+            }
+        }
+        if(name.isValid()){
+            if(top){ // 瀛樺湪锛屽垯娣诲姞鍒板瀛愬垪琛ㄤ腑
+                QTreeWidgetItem *top1 = new QTreeWidgetItem(top);
+                top1->setText(0,name.toString());
+            }else{ // 涓嶅瓨鍦紝鍒欐柊寤轰竴涓垪琛�
+                QTreeWidgetItem *top1 = new QTreeWidgetItem(ui->treeWidget);
+                top1->setText(0,name.toString()+"(姹囨��)");
+                QTreeWidgetItem *top2 = new QTreeWidgetItem(top1);
+                top2->setText(0,name.toString()+"(鏈骇)");
+            }
+        }
+
+
+    }else{
+        qDebug()<<"娌″彂鐜颁笂涓�绾э紝鍙兘鑷繁褰�"<<name;
+        if(name.isValid()){
+            QTreeWidgetItem *top1 = new QTreeWidgetItem(ui->treeWidget);
+            top1->setText(0,name.toString()+"(姹囨��)");
+            QTreeWidgetItem *top2 = new QTreeWidgetItem(top1);
+            top2->setText(0,name.toString()+"(鏈骇)");
+        }
+
+    }
+}
+void ConverInfo2::on_pushButton_laodFile_clicked()
+{
+    QString path = QFileDialog::getOpenFileName(this,"閫夋嫨琛ㄦ牸:鍗曚綅鍙婂唴閮ㄥ璁℃満鏋勫熀鏈儏鍐佃〃","./","excel(*鍩烘湰鎯呭喌琛�*.xls)");
+    qDebug()<<"path:"<<path;
+    if(path.size() > 1){
+        readExcelFromPath(path);
+    }
+}
+
+void ConverInfo2::showExcelSlot()
+{
+    readInfo(); // 鍔犺浇琛ㄦ牸
+}

--
Gitblit v1.8.0