From 41da0809fad858e523f85dcf9cec3e1e874810ff Mon Sep 17 00:00:00 2001 From: wumu <mayi@mayi.com> Date: 星期五, 01 十一月 2024 23:35:04 +0800 Subject: [PATCH] 1101 --- internal_system_v1/exporttofile.cpp | 223 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 220 insertions(+), 3 deletions(-) diff --git a/internal_system_v1/exporttofile.cpp b/internal_system_v1/exporttofile.cpp index b4b9a46..89cc27a 100644 --- a/internal_system_v1/exporttofile.cpp +++ b/internal_system_v1/exporttofile.cpp @@ -3,6 +3,8 @@ #include <QDebug> #include <QAxObject> #include <QFile> +#include <QDateTime> +#include <QMessageBox> #pragma execution_character_set("utf-8") ExportToFile::ExportToFile(QObject *parent) : QObject(parent) @@ -22,8 +24,8 @@ if(!dir.exists()){ demoPath = QDir::currentPath()+"/release/Data/闄勪欢2_鍐呭缁�01琛╛鍗曚綅鍙婂唴閮ㄥ璁℃満鏋勫熀鏈儏鍐佃〃-1.301鐗坃demo.xls"; } - - QString savePath = QFileDialog::getSaveFileName(nullptr,"淇濆瓨鏂囦欢",QDir::currentPath()+"/鍐呭缁�01琛�.xls","Excel File(*.xls,*.xlsx)"); + QString dt = QDateTime::currentDateTime().toString("yyyyMMdd-HHmmss"); + QString savePath = QFileDialog::getSaveFileName(nullptr,"淇濆瓨鏂囦欢",QDir::currentPath()+QString("/鍐呭缁�01琛╛%1_%2.xls").arg(QString::fromLocal8Bit(info.name)).arg(dt),"Excel File(*.xls;*.xlsx)"); qDebug()<<"savepath:"<<savePath <<endl << "demoPath:"<<demoPath; @@ -205,6 +207,7 @@ wbs->dynamicCall("Close()"); excel.dynamicCall("Quit(void)"); + QMessageBox::information(nullptr,"瀵煎嚭瀹屾垚","鏂囦欢浣嶇疆:"+savePath); } return 0; @@ -216,7 +219,221 @@ return 0; } -int ExportToFile::saveToExcelFromNeiShenZonghe() +int ExportToFile::saveToExcelFromNeiShenZonghe(QString name,NeiShenZongHeInfo &nszh) { + qDebug()<<"鍐呭缁煎悎淇濆瓨瀵煎嚭"; + + if(name.size() == 0) { + QMessageBox::information(nullptr,"鍏徃鍚嶄负绌�","璇烽�夋嫨涓�涓叕鍙稿啀瀵煎嚭淇濆瓨"); + return -1; // 鏂囦欢涓虹┖ + } + + QString demoPath = QDir::currentPath()+"/Data/闄勪欢4_鍐呭缁�03琛╛鍐呴儴瀹¤缁熻缁煎悎琛�.xls"; + QDir dir(demoPath); + if(!dir.exists()){ + demoPath = QDir::currentPath()+"/release/Data/闄勪欢4_鍐呭缁�03琛╛鍐呴儴瀹¤缁熻缁煎悎琛�.xls"; + } + QString dt = QDateTime::currentDateTime().toString("yyyyMMdd-HHmmss"); + QString savePath = QFileDialog::getSaveFileName(nullptr,"淇濆瓨鏂囦欢",QDir::currentPath()+QString("/缁煎悎琛╛%1_%2.xls").arg(name).arg(dt),"Excel File(*.xls;*.xlsx)"); + qDebug()<<"savepath:"<<savePath << endl << "demoPath:"<<demoPath; + + + + if(savePath.size() > 0){ + QAxObject excel("ket.Application"); + if(!excel.setControl("ket" + ".Application")){ // windows鍐呮牳 + excel.setControl("Excel.Application"); // wps鍐呮牳 + } + + excel.setProperty("Visible",false); + excel.setProperty("DisplayAlerts",false); + QAxObject * wbs = excel.querySubObject("WorkBooks"); + qDebug()<<"wbs:"<<wbs->className(); + QAxObject * wb = wbs->querySubObject("Open(QString&)",demoPath); + qDebug()<<"wb open ok"; + QAxObject * shs = wb->querySubObject("WorkSheets"); // WorkSheets 涔熷彲浠� + // 鑾峰彇鍏蜂綋琛ㄦ牸锛岃鍒� + QAxObject * sheet = shs->querySubObject("Item(int)", 1); // 绗竴涓〃 + 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; + + // 淇敼鍐呭 + + // 鍥� 椤圭洰瀹¤ 鍗曚綅 涓� + char index[5]={'F','G','H','I','J'}; + + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(39))->setProperty("Value2", nszh.code_030300[i]); // 瀹¤椤圭洰 + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(40))->setProperty("Value2", nszh.code_030301[i]); // 鍏朵腑锛氳疮褰昏惤瀹炲浗瀹堕噸澶ф斂绛栨帾鏂藉璁� + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(41))->setProperty("Value2", nszh.code_030302[i]); // 璐㈡斂璐㈠姟鏀舵敮瀹¤ + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(42))->setProperty("Value2", nszh.code_030303[i]); // 鍥哄畾璧勪骇鎶曡祫瀹¤ + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(43))->setProperty("Value2", nszh.code_030304[i]); // 鍐呴儴鎺у埗鍜岄闄╃鐞嗗璁� + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(44))->setProperty("Value2", nszh.code_030305[i]); // 缁忔祹璐d换瀹¤ + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(45))->setProperty("Value2", nszh.code_030306[i]); // 淇℃伅绯荤粺瀹¤ + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(46))->setProperty("Value2", nszh.code_030307[i]); // 澧冨瀹¤ + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(47))->setProperty("Value2", nszh.code_030308[i]); // 鍏朵粬 + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(48))->setProperty("Value2", nszh.code_030310[i]); // 鍏朵腑锛氬鎵樺鍖呴」鐩� + } + + qDebug()<<39; + + // 浜� 鏈~鎶ュ懆鏈熷唴閮ㄥ璁″伐浣滈噺 闅愯棌 + + // 鍏�佸璁″彂鐜伴棶棰橀噾棰� 鍗曚綅 鍏� + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(50))->setProperty("Value2", nszh.code_030500[i]); // 瀹¤鍙戠幇闂閲戦 + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(51))->setProperty("Value2", nszh.code_030510[i]); // 鍏朵腑锛氱哗鏁堢被闂閲戦 + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(52))->setProperty("Value2", nszh.code_030520[i]); // 鍚堣鎬ч棶棰橀噾棰� + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(53))->setProperty("Value2", nszh.code_030521[i]); // 鍏朵腑锛氫細璁℃牳绠楁柟闈� + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(54))->setProperty("Value2", nszh.code_030522[i]); // 杩濊浣跨敤璧勯噾 + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(55))->setProperty("Value2", nszh.code_030523[i]); // 鎴暀銆佹矇娣�璧勯噾 + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(56))->setProperty("Value2", nszh.code_030524[i]); // 鎹熷け娴垂 + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(57))->setProperty("Value2", nszh.code_030525[i]); // 鎸敤璧勯噾 + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(58))->setProperty("Value2", nszh.code_030526[i]); // 鍋锋紡绋庤垂 + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(59))->setProperty("Value2", nszh.code_030527[i]); // 杩濊鍙栧緱鏀跺叆 + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(60))->setProperty("Value2", nszh.code_030528[i]); // 鍏朵粬 + } + + + // 涓冦�佸璁″彂鐜伴棶棰樹釜鏁� + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(61))->setProperty("Value2", nszh.code_030600[i]); // 瀹¤鍙戠幇闂涓暟 + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(62))->setProperty("Value2", nszh.code_030610[i]); // 鍏朵腑锛氶噾棰濈被闂涓暟 + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(63))->setProperty("Value2", nszh.code_030620[i]); // 闈為噾棰濈被闂涓暟 + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(64))->setProperty("Value2", nszh.code_030621[i]); // 鍏朵腑锛氬浗瀹舵斂绛栨帾鏂借惤瀹炴柟闈� + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(65))->setProperty("Value2", nszh.code_030622[i]); // 鍙戝睍瑙勫垝涓庢垬鐣ュ喅绛栨柟闈� + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(66))->setProperty("Value2", nszh.code_030623[i]); // 鍐呴儴鎺у埗涓庨闄╃鐞嗘柟闈� + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(67))->setProperty("Value2", nszh.code_030624[i]); // 鍏朵粬 + } + + + // 鍏�佸璁″彂鐜伴棶棰樻暣鏀癸紙閲戦绫伙級 鍗曚綅 鍏� + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(68))->setProperty("Value2", nszh.code_030700[i]); // 瀹¤鍙戠幇闂鏁存敼锛堥噾棰濈被锛� + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(69))->setProperty("Value2", nszh.code_030701[i]); // 鍏朵腑锛氳皟鏁翠細璁¤处鐩� + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(70))->setProperty("Value2", nszh.code_030702[i]); // 鏀跺洖璧勯噾 + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(71))->setProperty("Value2", nszh.code_030703[i]); // 鎸藉洖鎹熷け + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(72))->setProperty("Value2", nszh.code_030704[i]); // 褰掕繕鍘熻祫閲戞笭閬� + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(73))->setProperty("Value2", nszh.code_030705[i]); // 琛ョ即绋庤垂 + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(74))->setProperty("Value2", nszh.code_030706[i]); // 鍏朵粬 + } + + + // 涔濄�佸璁″彂鐜伴棶棰樻暣鏀癸紙闈為噾棰濈被锛� 鍗曚綅 涓� + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(75))->setProperty("Value2", nszh.code_030800[i]); // 瀹¤鍙戠幇闂鏁存敼锛堥潪閲戦绫伙級 + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(76))->setProperty("Value2", nszh.code_030801[i]); // 鍏朵腑锛氭柊鍒跺畾鍒跺害 + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(77))->setProperty("Value2", nszh.code_030802[i]); // 淇瀹屽杽鍒跺害 + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(78))->setProperty("Value2", nszh.code_030803[i]); // 浼樺寲瀹屽杽涓氬姟娴佺▼ + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(79))->setProperty("Value2", nszh.code_030804[i]); // 鍏朵粬 + } + + + // 鍗併�佹牴鎹璁″缓璁粰浜堝厷绾�佹斂鍔″拰鍐呴儴绾緥澶勫垎 鍗曚綅 浜� + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(80))->setProperty("Value2", nszh.code_030900[i]); // 鏍规嵁瀹¤寤鸿缁欎簣鍏氱邯銆佹斂鍔″拰鍐呴儴绾緥澶勫垎 + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(81))->setProperty("Value2", nszh.code_030901[i]); // 鍏朵腑锛氬厷绾鍒� + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(82))->setProperty("Value2", nszh.code_030902[i]); // 鏀垮姟澶勫垎 + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(83))->setProperty("Value2", nszh.code_030903[i]); // 鍐呴儴绾緥澶勫垎 + } + + + // 鍗佷竴銆佸悜鍙告硶鏈哄叧绉婚�佹垨鎶ュ憡妗堜欢绾跨储 + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(84))->setProperty("Value2", nszh.code_031000[i]); // 鍚戝徃娉曟満鍏崇Щ閫佹垨鎶ュ憡妗堜欢绾跨储 + } + for(int i=0;i<5;++i){ + sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg(index[i]).arg(85))->setProperty("Value2", nszh.code_031001[i]); // 鍏朵腑锛氭秹妗堜汉鍛� + } + + + // 瀹屼簨浜嗭紝缁撴潫锛屼繚瀛樻垨鑰呴��鍑� + wb->dynamicCall("SaveAs(const QString&)",QDir::toNativeSeparators(savePath)); + wbs->dynamicCall("Close()"); + excel.dynamicCall("Quit(void)"); + + QMessageBox::information(nullptr,"瀵煎嚭瀹屾垚","鏂囦欢浣嶇疆:"+savePath); + + } + return 0; } -- Gitblit v1.8.0