From 0d17c4e8a79283c64cb8950484ff908b6123e99d Mon Sep 17 00:00:00 2001
From: wumu <mayi@mayi.com>
Date: 星期一, 26 二月 2024 23:13:42 +0800
Subject: [PATCH] 0226

---
 internal_system_v1/converinfo2.cpp |  374 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 373 insertions(+), 1 deletions(-)

diff --git a/internal_system_v1/converinfo2.cpp b/internal_system_v1/converinfo2.cpp
index b93f5d6..ac5178e 100644
--- a/internal_system_v1/converinfo2.cpp
+++ b/internal_system_v1/converinfo2.cpp
@@ -1,13 +1,20 @@
 锘�#include "converinfo2.h"
 #include "ui_converinfo2.h"
 #include <QDebug>
+#include <QDirIterator>
+#include <QFileDialog>
+#include <QSqlQuery>
+#include <QSqlRecord>
 
 ConverInfo2::ConverInfo2(QWidget *parent) :
     QMainWindow(parent),
     ui(new Ui::ConverInfo2)
 {
     ui->setupUi(this);
-    initUi();
+    m_menu = nullptr;
+    //initUi();
+    readInfo(); // 鍔犺浇琛ㄦ牸
+    addMenu(); // 澧炲姞鑿滃崟
 }
 
 ConverInfo2::~ConverInfo2()
@@ -90,3 +97,368 @@
 {
     qDebug()<<"鍙屽嚮"<<index;
 }
+
+void ConverInfo2::readInfo()
+{
+//    QXlsx::Document doc("./debug/Data/test.xlsx");
+//    QString cc = doc.read("A1").toString();
+//    qDebug()<<"cc"<<cc;
+//    ui->label_creditCode->setText(cc);
+    extern QString g_dataRootPath;
+
+    QString dirPath = "./debug/Data";
+    QString dirPathRelease = "./release/Data";
+    QString dirPathData = "./Data";
+    QDir dir(dirPathData);
+    if(dir.exists()){
+        dirPath = dirPathData; // 瀛樺湪鍒欒鐩�
+    }
+
+    QDir dirRe(dirPathRelease);
+    if(dirRe.exists()){
+        dirPath = dirPathRelease;
+    }
+    g_dataRootPath = dirPath; // 灏嗘牴鐩綍淇濆瓨璧锋潵
+    QStringList list;
+    QDirIterator it(dirPath, {"*.xls","*.xlsx"}, QDir::Files | QDir::NoSymLinks | QDir::NoDotAndDotDot, QDirIterator::Subdirectories);
+    while(it.hasNext())
+    {
+        it.next();
+        list.append(it.fileInfo().absoluteFilePath());
+    }
+    foreach(QString str, list)
+    {
+        qDebug() << str;
+        int index = str.indexOf("鍐呭缁�01琛�");
+        qDebug()<<"index:"<<index;
+        if(index > 0){
+            QAxObject excel("Excel.Application");
+            excel.setProperty("Visible",false);
+            excel.setProperty("DisplayAlerts",false);
+            qDebug()<<"open:"<<str;
+            qDebug()<<"excel:"<<excel.className();
+            QAxObject * wbs = excel.querySubObject("WorkBooks");
+            QAxObject * wb = wbs->querySubObject("Open(QString&)",str);
+            //QAxObject* pWorkBook = excel.querySubObject("ActiveWorkBook");
+            //QAxObject* pWorkSheets = pWorkBook->querySubObject("Sheets");//鑾峰彇宸ヤ綔琛�
+            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();
+                // 閬嶅巻姣忎竴椤�
+                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());
+
+                }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(4);
+                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;
+                }
+
+                // 鏈�鍚庡瓨鍒癿ap涓�
+                m_nameAndComInfos[name.toString()]=curComInfo;
+
+            }
+            wbs->dynamicCall("Close()");
+            excel.dynamicCall("Quit(void)");
+
+            qDebug()<<"鍗曚綅淇℃伅鏁伴噺锛�"<<m_nameAndComInfos.size();
+        }
+    }
+
+
+//    QAxObject excel("./debug/Data/闄勪欢2_鍐呭缁�01琛╛鍗曚綅鍙婂唴閮ㄥ璁℃満鏋勫熀鏈儏鍐佃〃-1.301鐗�(1).xls");
+//    excel.setProperty("Visible",true);
+//    excel.setProperty("DisplayAlerts",false);
+
+}
+
+void ConverInfo2::addMenu()
+{
+    // 璁剧疆鑿滃崟:娣诲姞鍗曚綅銆佸垹闄ゅ崟浣�
+    if(m_menu==nullptr){
+        m_menu = new QMenu(this);
+        qDebug()<<"init menu ok";
+    }
+
+    m_menu->addAction("鍒犻櫎");
+    m_menu->addAction("澧炲姞");
+
+    ui->treeWidget->setContextMenuPolicy(Qt::CustomContextMenu);
+    connect(ui->treeWidget,SIGNAL(customContextMenuRequested(QPoint)),this,SLOT(showMenu(QPoint)));
+
+    connect(m_menu->actions().at(0),SIGNAL(triggered(bool)),this,SLOT(deleteInfo()));
+    connect(m_menu->actions().at(1),SIGNAL(triggered(bool)),this,SLOT(addInfo()));
+}

--
Gitblit v1.8.0