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