#include "exporttofile.h" #include <QFileDialog> #include <QDebug> #include <QAxObject> #include <QFile> #include <QDateTime> #include <QMessageBox> #pragma execution_character_set("utf-8") ExportToFile::ExportToFile(QObject *parent) : QObject(parent) { } int ExportToFile::saveToExcelFromComInfo(ComInfo &info) { // 读å–当å‰ç›®å½•ä¸‹çš„æ¨¡æ¿æ–‡ä»¶ï¼Œç„¶åŽå¾€é‡Œå†™æ•°æ®ï¼Œä¿®æ”¹ä¿å˜ // QString savePath = QFileDialog::getExistingDirectory(nullptr,"选择文件夹",QDir::currentPath()); // qDebug()<<"savepath:"<<savePath; QString demoPath = QDir::currentPath()+"/Data/附件2_内审统01表_å•ä½åŠå†…部审计机构基本情况表-1.301版_demo.xls"; QDir dir(demoPath); if(!dir.exists()){ demoPath = QDir::currentPath()+"/release/Data/附件2_内审统01表_å•ä½åŠå†…部审计机构基本情况表-1.301版_demo.xls"; QDir dir_realse(demoPath); if(!dir_realse.exists()){ demoPath = QDir::currentPath()+"/Data/附件2_内审统01表_å•ä½åŠå†…部审计机构基本情况表-1.301版_demo.xls"; } } 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; 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; // 修改æŸä¸ªå€¼ //sheet->querySubObject("Cells(int,int)", 1, 10)->dynamicCall("SetValue(const QString&)","1000200300"); // QAxObject *cell1 = sheet->querySubObject("Range(QVariant, QVariant)", "D10"); // qDebug()<<"B3原数æ®ï¼š"<<cell1->dynamicCall("Value2()").toString(); // /* ---- 修改å•个å•å…ƒæ ¼ä¸çš„æ•°æ® ---- */ // cell1->setProperty("Value2", "21321321312"); // qDebug()<<"B3修改åŽçš„æ•°æ®ï¼š"<<cell1->dynamicCall("Value2()").toString(); // QAxObject *cell2 = sheet->querySubObject("Range(QVariant, QVariant)", "G63"); // qDebug()<<"B3原数æ®ï¼š"<<cell2->dynamicCall("Value2()").toString(); // /* ---- 修改å•个å•å…ƒæ ¼ä¸çš„æ•°æ® ---- */ // cell2->setProperty("Value2", "10"); // qDebug()<<"G63修改åŽçš„æ•°æ®ï¼š"<<cell2->dynamicCall("Value2()").toString(); // QAxObject *cell3 = sheet->querySubObject("Range(QVariant, QVariant)", "E57"); // qDebug()<<"B3原数æ®ï¼š"<<cell3->dynamicCall("Value2()").toString(); // /* ---- 修改å•个å•å…ƒæ ¼ä¸çš„æ•°æ® ---- */ // cell3->setProperty("Value2", "4 å…¶ä»–"); // qDebug()<<"E57修改åŽçš„æ•°æ®ï¼š"<<cell3->dynamicCall("Value2()").toString(); // 便¬¡èµ‹å€¼ // 基本情况 sheet->querySubObject("Range(QVariant, QVariant)", "D10")->setProperty("Value2", info.creditCode); // 统一信用代ç qDebug()<<1; sheet->querySubObject("Range(QVariant, QVariant)", "I10")->setProperty("Value2", QString::fromLocal8Bit(info.name)); // å•ä½åç§° qDebug()<<2; sheet->querySubObject("Range(QVariant, QVariant)", "D13")->setProperty("Value2", QString::fromLocal8Bit(info.comType)); // 机构类型 qDebug()<<3; sheet->querySubObject("Range(QVariant, QVariant)", "C19")->setProperty("Value2", QString::fromLocal8Bit(info.business)); // 业务活动 qDebug()<<4; sheet->querySubObject("Range(QVariant, QVariant)", "E20")->setProperty("Value2", info.businessCode); // 行业代ç qDebug()<<5; sheet->querySubObject("Range(QVariant, QVariant)", "B22")->setProperty("Value2", QString::fromLocal8Bit(info.addr)); // 注册地åŠåŒºåˆ’ qDebug()<<6; sheet->querySubObject("Range(QVariant, QVariant)", "C25")->setProperty("Value2", info.areaCode); // 区域代ç qDebug()<<7; sheet->querySubObject("Range(QVariant, QVariant)", "G25")->setProperty("Value2", info.townCode); // 城乡代ç qDebug()<<8; sheet->querySubObject("Range(QVariant, QVariant)", "C26")->setProperty("Value2", QString::fromLocal8Bit(info.scale)); // å•ä½è§„模 qDebug()<<9; sheet->querySubObject("Range(QVariant, QVariant)", "G27")->setProperty("Value2", info.people); // ä»Žä¸šäººå‘˜æ•°é‡ qDebug()<<10; sheet->querySubObject("Range(QVariant, QVariant)", "E28")->setProperty("Value2", QString::fromLocal8Bit(info.representative)); // 法人 qDebug()<<11; sheet->querySubObject("Range(QVariant, QVariant)", "I28")->setProperty("Value2", QString::fromLocal8Bit(info.standardType)); // æ‰§è¡Œä¼šè®¡æ ‡å‡† qDebug()<<12; sheet->querySubObject("Range(QVariant, QVariant)", "C32")->setProperty("Value2", info.trunkCode); // é•¿é€”åŒºå· qDebug()<<13; sheet->querySubObject("Range(QVariant, QVariant)", "C33")->setProperty("Value2", info.fixedTel); // å›ºå®šç”µè¯ qDebug()<<14; sheet->querySubObject("Range(QVariant, QVariant)", "C34")->setProperty("Value2", info.postCode); // 邮政编ç qDebug()<<15; sheet->querySubObject("Range(QVariant, QVariant)", "F31")->setProperty("Value2", info.email); // 电å邮箱 qDebug()<<16; sheet->querySubObject("Range(QVariant, QVariant)", "F33")->setProperty("Value2", info.webSite); // ç½‘å€ qDebug()<<17; // 二 å•ä½ç»„织结构情况 sheet->querySubObject("Range(QVariant, QVariant)", "E36")->setProperty("Value2", QString::fromLocal8Bit(info.hasUpLegal)); // æ˜¯å¦æœ‰ä¸Šä¸€çº§æ³•人 qDebug()<<18; sheet->querySubObject("Range(QVariant, QVariant)", "H37")->setProperty("Value2", QString::fromLocal8Bit(info.upCreditCode)); // 上一级统一社会信用代ç qDebug()<<19; sheet->querySubObject("Range(QVariant, QVariant)", "H38")->setProperty("Value2", QString::fromLocal8Bit(info.oldCreditCode)); // 原组织机构代ç qDebug()<<20; sheet->querySubObject("Range(QVariant, QVariant)", "H39")->setProperty("Value2", QString::fromLocal8Bit(info.upName)); // 上一级å•ä½åç§° qDebug()<<21; // 三 总审计师与内部审计机构基本情况 sheet->querySubObject("Range(QVariant, QVariant)", "E41")->setProperty("Value2", QString::fromLocal8Bit(info.hasChiefDesigner)); // 是å¦è®¾ç½®æ€»å®¡è®¡å¸ˆ qDebug()<<22; sheet->querySubObject("Range(QVariant, QVariant)", "E42")->setProperty("Value2", QString::fromLocal8Bit(info.ChiefDesignerLevel)); // 总审计师èŒä½å±‚级 qDebug()<<23; sheet->querySubObject("Range(QVariant, QVariant)", "E45")->setProperty("Value2", QString::fromLocal8Bit(info.employmentMode)); // æ€»å®¡ä»»èŒæ–¹å¼ qDebug()<<24; sheet->querySubObject("Range(QVariant, QVariant)", "E48")->setProperty("Value2", QString::fromLocal8Bit(info.hasSetIntervalAudit)); // 是å¦è®¾ç½®å†…审机构 qDebug()<<25; sheet->querySubObject("Range(QVariant, QVariant)", "E49")->setProperty("Value2", QString::fromLocal8Bit(info.internalName)); // 内审机构åç§° qDebug()<<26; sheet->querySubObject("Range(QVariant, QVariant)", "E50")->setProperty("Value2", QString::fromLocal8Bit(info.leadingOrganization)); // 领导机构 qDebug()<<27; sheet->querySubObject("Range(QVariant, QVariant)", "E54")->setProperty("Value2", QString::fromLocal8Bit(info.hasSetSeparateIA)); // 是å¦ç‹¬ç«‹è®¾ç½®å†…审机构 qDebug()<<28; sheet->querySubObject("Range(QVariant, QVariant)", "E56")->setProperty("Value2", info.financeDepartment); // 财务部门 qDebug()<<29; sheet->querySubObject("Range(QVariant, QVariant)", "E56")->setProperty("Value2", info.legalDepartment); // 法务部门 qDebug()<<30; sheet->querySubObject("Range(QVariant, QVariant)", "E56")->setProperty("Value2", info.internalConDepart); // 内部控制部门 qDebug()<<31; sheet->querySubObject("Range(QVariant, QVariant)", "E56")->setProperty("Value2", info.disceplineInDepart); // 纪检部门 qDebug()<<32; sheet->querySubObject("Range(QVariant, QVariant)", "E56")->setProperty("Value2", info.otherDepart); // 其他部门 qDebug()<<33; sheet->querySubObject("Range(QVariant, QVariant)", "E57")->setProperty("Value2", QString::fromLocal8Bit(info.intavalAuditLeval)); // 内审层级 qDebug()<<34; // å›› 内部审计人员é…备基本情况 sheet->querySubObject("Range(QVariant, QVariant)", "E61")->setProperty("Value2", info.organazationNum); // ç¼–åˆ¶æ•°é‡ qDebug()<<35; sheet->querySubObject("Range(QVariant, QVariant)", "G61")->setProperty("Value2", info.realNum); // 实有人员数 qDebug()<<36; sheet->querySubObject("Range(QVariant, QVariant)", "I61")->setProperty("Value2", info.professionalNum); // 专èŒäººå‘˜æ•°é‡ qDebug()<<37; sheet->querySubObject("Range(QVariant, QVariant)", "G62")->setProperty("Value2", info.CIANum); // 拥有CIA人数 qDebug()<<38; sheet->querySubObject("Range(QVariant, QVariant)", "G63")->setProperty("Value2", info.masterNum); // 硕士å¦åŽ†ä»¥ä¸Šäººæ•° qDebug()<<39; sheet->querySubObject("Range(QVariant, QVariant)", "G64")->setProperty("Value2", info.undergraduatesNum); // 本科人数 qDebug()<<40; sheet->querySubObject("Range(QVariant, QVariant)", "G65")->setProperty("Value2", info.juniorNum); // 专科åŠä»¥ä¸‹äººæ•° qDebug()<<41; sheet->querySubObject("Range(QVariant, QVariant)", "G66")->setProperty("Value2", info.seniorNum); // 高级èŒç§°äººæ•° qDebug()<<42; sheet->querySubObject("Range(QVariant, QVariant)", "G67")->setProperty("Value2", info.intermediateNum); // ä¸çº§èŒç§°äººæ•° qDebug()<<43; sheet->querySubObject("Range(QVariant, QVariant)", "G68")->setProperty("Value2", info.primaryNum); // åˆçº§èŒç§°äººæ•° qDebug()<<44; sheet->querySubObject("Range(QVariant, QVariant)", "G69")->setProperty("Value2", info.noTitleNum); // æ— èŒç§°äººæ•° qDebug()<<45; sheet->querySubObject("Range(QVariant, QVariant)", "G70")->setProperty("Value2", info.upFiftyOldNum); // 50å²ä»¥ä¸Šäººæ•° qDebug()<<46; sheet->querySubObject("Range(QVariant, QVariant)", "G71")->setProperty("Value2", info.upThirtyOldNum); // 30-50å²äººæ•° qDebug()<<47; sheet->querySubObject("Range(QVariant, QVariant)", "G72")->setProperty("Value2", info.downThirtyOldNum); // 30å²ä»¥ä¸‹äººæ•° qDebug()<<48; sheet->querySubObject("Range(QVariant, QVariant)", "G73")->setProperty("Value2", info.auditNum); // å®¡è®¡æ•°é‡ qDebug()<<49; sheet->querySubObject("Range(QVariant, QVariant)", "G74")->setProperty("Value2", info.accountingNum); // ä¼šè®¡æ•°é‡ qDebug()<<50; sheet->querySubObject("Range(QVariant, QVariant)", "G75")->setProperty("Value2", info.economyNum); // ç»æµŽæ•°é‡ qDebug()<<51; sheet->querySubObject("Range(QVariant, QVariant)", "G76")->setProperty("Value2", info.lawNum); // æ³•å¾‹æ•°é‡ qDebug()<<52; sheet->querySubObject("Range(QVariant, QVariant)", "G77")->setProperty("Value2", info.managerNum); // ç®¡ç†æ•°é‡ qDebug()<<53; sheet->querySubObject("Range(QVariant, QVariant)", "G78")->setProperty("Value2", info.itNum); // ä¿¡æ¯æŠ€æœ¯æ•°é‡ qDebug()<<54; sheet->querySubObject("Range(QVariant, QVariant)", "G79")->setProperty("Value2", info.engineeringNum); // å·¥ç¨‹æ•°é‡ qDebug()<<55; sheet->querySubObject("Range(QVariant, QVariant)", "G80")->setProperty("Value2", info.otherNum); // å…¶ä»–æ•°é‡ qDebug()<<56; // åŽé¢çš„4ä¸ªä¿¡æ¯ sheet->querySubObject("Range(QVariant, QVariant)", "B82")->setProperty("Value2", QString::fromLocal8Bit(info.statisticalConOfficer)); // 统计负责人 qDebug()<<57; sheet->querySubObject("Range(QVariant, QVariant)", "E82")->setProperty("Value2", QString::fromLocal8Bit(info.personFilling)); // 填表人 qDebug()<<58; sheet->querySubObject("Range(QVariant, QVariant)", "B83")->setProperty("Value2", QString::fromLocal8Bit(info.officerTel)); // è”ç³»ç”µè¯ qDebug()<<59; sheet->querySubObject("Range(QVariant, QVariant)", "E83")->setProperty("Value2", QString::fromLocal8Bit(info.fillingDateTime)); // 填报日期 qDebug()<<60; // 完事了,结æŸï¼Œä¿å˜æˆ–者退出 wb->dynamicCall("SaveAs(const QString&)",QDir::toNativeSeparators(savePath)); wbs->dynamicCall("Close()"); excel.dynamicCall("Quit(void)"); QMessageBox::information(nullptr,"导出完æˆ","文件ä½ç½®:"+savePath); } return 0; } int ExportToFile::saveToExcelFromThreeMergePro(QString name,QVector<ThreeMergeInfo> &threeMergeInfos) { qDebug()<<"三åˆä¸€å°æœ¬ä¿å˜å¯¼å‡º"; if(threeMergeInfos.size() == 0) { QMessageBox::information(nullptr,"内容为空","请查询到数æ®å†å¯¼å‡ºä¿å˜"); return -1; // 文件为空 } if(name.size() == 0) { QMessageBox::information(nullptr,"å…¬å¸å为空","请选择一个公å¸å†å¯¼å‡ºä¿å˜"); return -1; // 文件为空 } QString demoPath = QDir::currentPath()+"/Data/三åˆä¸€.xlsx"; QDir dir(demoPath); if(!dir.exists()){ demoPath = QDir::currentPath()+"/release/Data/三åˆä¸€.xlsx"; QDir dir_realese(demoPath); if(!dir_realese.exists()){ demoPath = QDir::currentPath()+"/Data/三åˆä¸€.xlsx"; } } //QMessageBox::information(nullptr,"三åˆä¸€è·¯å¾„",demoPath); 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; // 修改内容 for(int i=0;i<threeMergeInfos.size();++i){ // å‘现问题 sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg('A').arg(4+i))->setProperty("Value2", threeMergeInfos[i].id); // åºå· sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg('B').arg(4+i))->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].audit_type)); // 审计类别 sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg('C').arg(4+i))->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].audit_year)); // 审计年度 sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg('D').arg(4+i))->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].audit_unit)); // 审计å•ä½ sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg('E').arg(4+i))->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].audit_method)); // å®¡è®¡æ–¹å¼ sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg('F').arg(4+i))->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].responsible_subject_name)); // 责任主体åç§° sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg('G').arg(4+i))->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].audit_item)); // 审计项目 sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg('H').arg(4+i))->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].audit_item_name)); // 审计项目åç§° sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg('I').arg(4+i))->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].pro_type)); // 问题类别 sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg('J').arg(4+i))->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].problem_qualification)); // 问题定性 sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg('K').arg(4+i))->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].problem_desript)); // 问题æè¿° sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg('L').arg(4+i))->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].problem_qualifi_basis)); // é—®é¢˜å®šæ€§æ³•è§„ä¾æ® sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg('M').arg(4+i))->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].problem_money_basis)); // 审计å‘现问题金é¢å®šæ€§ sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg('N').arg(4+i))->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].problem_num_basis)); // 审计å‘现问题个数定性 sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg('O').arg(4+i))->setProperty("Value2", threeMergeInfos[i].money_involved); // 涉åŠé‡‘é¢ï¼ˆä¸‡å…ƒï¼‰ sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg('P').arg(4+i))->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].problem_desript_evidence_material)); // 问题æè¿°ä½è¯èµ„æ–™ // 整改情况 sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg('Q').arg(4+i))->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].audit_rectified)); // 审计期间已整改 sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg('R').arg(4+i))->setProperty("Value2", threeMergeInfos[i].rectify_money); // 整改金é¢ï¼ˆä¸‡å…ƒï¼‰ sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg('S').arg(4+i))->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].rectify_situation_1)); // 整改情况1 sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg('T').arg(4+i))->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].rectify_situation_evidence_mat_1)); // 整改情况ä½è¯èµ„æ–™1 sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg('U').arg(4+i))->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].rectify_res)); // 整改结果 sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg('V').arg(4+i))->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].rectify_complete_time)); // æ•´æ”¹å®Œæˆæ—¶é—´ sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg('W').arg(4+i))->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].rectify_not_over_reason)); // 尚未整改到ä½çš„åŽŸå› sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg('X').arg(4+i))->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].rectify_will_complete_time)); // æ•´æ”¹é¢„è®¡å®Œæˆæ—¶é—´ sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg('Y').arg(4+i))->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].rectify_situation_2)); // 整改情况2 sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg('Z').arg(4+i))->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].rectify_situation_evidence_mat_2)); // 整改情况ä½è¯èµ„æ–™2 // 处分结果 sheet->querySubObject("Cells(int,int)", 4+i,27)->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].punish_type)); // 处分类型 //sheet->querySubObject("Range(QVariant, QVariant)", QString("%1%2").arg('AA').arg(4+i))->setProperty("Value2", threeMergeInfos[i].punish_person_num); // 处分人数(å•ä½ï¼šäººï¼‰ sheet->querySubObject("Cells(int,int)", 4+i,27+1)->setProperty("Value2", threeMergeInfos[i].punish_person_num); // 处分人数(å•ä½ï¼šäººï¼‰ // 超过Zäº†ï¼Œå¾—å®‰ä¸‹æ ‡æ¥å¤„ç†äº† // // ç§»é€ä¿¡æ¯ sheet->querySubObject("Cells(int,int)", 4+i,28+1)->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].transfer_info)); // ç§»é€è¯¦ç»†ä¿¡æ¯ sheet->querySubObject("Cells(int,int)", 4+i,29+1)->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].punish_res)); // 处ç†ç»“æžœ sheet->querySubObject("Cells(int,int)", 4+i,30+1)->setProperty("Value2", threeMergeInfos[i].involved_person_num); // 涉案人员(å•ä½ï¼šäººï¼‰ // 整改检查结果 sheet->querySubObject("Cells(int,int)", 4+i,31+1)->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].rectify_check_time)); // 检查时间 sheet->querySubObject("Cells(int,int)", 4+i,32+1)->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].rectify_check_mothod)); // æ£€æŸ¥æ–¹å¼ sheet->querySubObject("Cells(int,int)", 4+i,33+1)->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].rectify_check_res)); // 检查结果 // 整改类型-已整改 sheet->querySubObject("Cells(int,int)", 4+i,34+1)->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].correct_problem)); // çº æ£é—®é¢˜ sheet->querySubObject("Cells(int,int)", 4+i,35+1)->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].improve_the_system)); // 完善制度 sheet->querySubObject("Cells(int,int)", 4+i,36+1)->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].complete_time)); // å®Œæˆæ—¶é—´ // 整改类型-æ£åœ¨æ•´æ”¹ sheet->querySubObject("Cells(int,int)", 4+i,37+1)->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].during_main_reason)); // 主è¦åŽŸå› sheet->querySubObject("Cells(int,int)", 4+i,38+1)->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].during_end_complete_time)); // å®Œæˆæ—¶é™ // 整改类型-尚未整改 sheet->querySubObject("Cells(int,int)", 4+i,39+1)->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].not_main_reason)); // 主è¦åŽŸå› sheet->querySubObject("Cells(int,int)", 4+i,40+1)->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].departen_or_person)); // 责任部门或责任人 sheet->querySubObject("Cells(int,int)", 4+i,41+1)->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].not_end_complete_time)); // å®Œæˆæ—¶é™ // 整改结果-问题整改(金é¢ç±») sheet->querySubObject("Cells(int,int)", 4+i,42+1)->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].money_res)); // 金é¢ç±»æ•´æ”¹æˆæžœ sheet->querySubObject("Cells(int,int)", 4+i,43+1)->setProperty("Value2", threeMergeInfos[i].money_res_money); // 金é¢ï¼ˆå…ƒï¼‰ // 整改结果-问题整改(éžé‡‘é¢ç±») sheet->querySubObject("Cells(int,int)", 4+i,44+1)->setProperty("Value2", QString::fromLocal8Bit(threeMergeInfos[i].no_money_res)); // éžé‡‘é¢ç±»æ•´æ”¹æˆæžœ sheet->querySubObject("Cells(int,int)", 4+i,45+1)->setProperty("Value2", threeMergeInfos[i].no_money_res_num); // æ•°é‡ï¼ˆä¸ªï¼‰ } // 完事了,结æŸï¼Œä¿å˜æˆ–者退出 wb->dynamicCall("SaveAs(const QString&)",QDir::toNativeSeparators(savePath)); wbs->dynamicCall("Close()"); excel.dynamicCall("Quit(void)"); QMessageBox::information(nullptr,"导出完æˆ","文件ä½ç½®:"+savePath); } return 0; } 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"; QDir dir_realse(demoPath); if(!dir_realse.exists()){ demoPath = QDir::currentPath()+"/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]); // ç»æµŽè´£ä»»å®¡è®¡ } 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; }