#include "searchinfo.h" #include "ui_searchinfo.h" #include <QAxObject> #include <QDebug> #include <QDir> #include <QSqlError> #include <QSqlQuery> #include <QMessageBox> #include <QFileDialog> #include <QCalendarWidget> SearchInfo::SearchInfo(QWidget *parent) : QMainWindow(parent), ui(new Ui::SearchInfo) { ui->setupUi(this); // ui->label_2->hide(); // ui->label_3->hide(); // ui->dateTimeEdit->hide(); // ui->dateTimeEdit_2->hide(); ui->dateEdit_begin->calendarWidget()->setStyleSheet("background-color:#deab8a"); ui->dateEdit_end->calendarWidget()->setStyleSheet("background-color:pink"); ui->dateEdit_end->setDate(QDate::currentDate()); m_model = new QStandardItemModel(this); ui->tableView->setModel(m_model); ui->tableView->verticalHeader()->setVisible(false); // éšè—行头 m_model->setColumnCount(5); QStringList labels; labels<<"ID"<<"æŒ‡æ ‡åç§°"<<"代ç "<<"æ•°é‡"<<"å…¬å¸ç¼–å·"<<"审计时间"; m_model->setHorizontalHeaderLabels(labels); if(QSqlDatabase::contains("qt_sql_default_connection")){ m_db = QSqlDatabase::addDatabase("qt_sql_default_connection"); }else{ m_db = QSqlDatabase::addDatabase("QSQLITE"); } m_db.setDatabaseName("sqlData.db"); if(m_db.open()){ qDebug()<<"db open ok"; createSqlite(); //m_db.close(); searchComName(); // 查询公å¸å }else{ qDebug()<<"db open fail"; } // è®¾ç½®è¡¨æ ¼åˆ—æ ‡ç¾ setLabels(); } SearchInfo::~SearchInfo() { m_db.close(); delete ui; } void SearchInfo::createSqlite() { // 建表 QString sql = "create table Internal_1 (id int primary key, name varchar(30), _020100 int)"; QSqlQuery query; if(query.exec(sql)) { qDebug()<<"create Internal_1 ok..."; }else{ qDebug()<<"create Internal_1 fail..."<<query.lastError().text(); } sql = "CREATE TABLE file_up_info (\ id INTEGER PRIMARY KEY AUTOINCREMENT,\ name VARCHAR (30),\ code TEXT,\ up_time TEXT\ )"; if(query.exec(sql)) { qDebug()<<"create file_up_info ok..."; }else{ qDebug()<<"create file_up_info fail..."<<query.lastError().text(); } sql = "CREATE TABLE company_info (\ id INTEGER PRIMARY KEY AUTOINCREMENT,\ name VARCHAR (30),\ code VARCHAR (30),\ 机构类型 TEXT,\ 主è¦ä¸šåŠ¡æ´»åŠ¨ TEXT,\ 行业代ç TEXT,\ å•使³¨å†Œåœ°åŠåŒºåŸŸ TEXT,\ 区域代ç TEXT,\ 城乡代ç TEXT,\ å•ä½è§„模 TEXT,\ 从业期末人数 TEXT,\ 法定代表人 TEXT,\ æ‰§è¡Œä¼šè®°æ ‡å‡†ç±»åˆ« TEXT,\ é•¿é€”åŒºå· TEXT,\ å›ºå®šç”µè¯ TEXT,\ 邮政编ç TEXT,\ 电å邮箱 TEXT,\ ç½‘å€ TEXT\ )"; if(query.exec(sql)) { qDebug()<<"create company_info ok..."; }else{ qDebug()<<"create company_info fail..."<<query.lastError().text(); } // 审计项目表 createTableNoEvidences("audit_project"); m_itemAndTable["审计项目"] = "audit_project"; // 内审工作é‡è¡¨ createTableNoEvidences("audit_workload"); m_itemAndTable["内审工作é‡"] = "audit_workload"; // 问题金é¢è¡¨ createTableHasEvidences("problem_money"); m_itemAndTable["问题金é¢"] = "problem_money"; // 问题个数表 createTableHasEvidences("problem_count"); m_itemAndTable["问题个数"] = "problem_count"; // 问题整改表 createTableHasEvidences("problem_rectification"); m_itemAndTable["问题整改"] = "problem_rectification"; // 问题整改--éžé‡‘é¢è¡¨ createTableHasEvidences("problem_no_money"); m_itemAndTable["问题整改--éžé‡‘é¢"] = "problem_no_money"; // 处分表 createTableNoEvidences("punish"); m_itemAndTable["处分"] = "punish"; // 案件线索表 createTableHasUnit("case_clue"); m_itemAndTable["案件线索"] = "case_clue"; // å•ä½çš„æ‰€æœ‰ä¿¡æ¯è¡¨ 创建 createTableAllComInfo("all_company_info"); // 整改结果信æ¯è¡¨ 创建 createTableRectifyResultInfo("rectify_result_info"); // 问题清å•ä¿¡æ¯è¡¨ 创建 createTableProblemListInfo("problem_list_info"); // 综åˆå½•入信æ¯è¡¨ 创建 createTableComprehensiveEntryInfo("comprehensive_entry_info"); // 整改å°è´¦ä¿¡æ¯è¡¨ 创建 createTableStandingBook("standing_book_info"); } // 综åˆå½•入信æ¯è¡¨ 以编ç ä½œä¸ºæŒ‡æ ‡å void SearchInfo::createTableComprehensiveEntryInfo(QString tableName){ QString sql = QString("CREATE TABLE %1 (\ id INTEGER PRIMARY KEY AUTOINCREMENT,\ name VARCHAR (30),\ _030000 TEXT,\ _030001 TEXT,\ _030100 TEXT,\ _030101 TEXT,\ _030200 TEXT,\ _030210 TEXT,\ _030220 TEXT,\ _030221 TEXT,\ _030222 TEXT,\ _030223 TEXT,\ _030230 TEXT,\ _030231 TEXT,\ _030232 TEXT,\ _030233 TEXT,\ _030234 TEXT,\ _030240 TEXT,\ _030241 TEXT,\ _030242 TEXT,\ _030243 TEXT,\ _030250 TEXT,\ _030251 TEXT,\ _030252 TEXT,\ _030253 TEXT,\ _030254 TEXT,\ _030255 TEXT,\ _030256 TEXT,\ _030257 TEXT,\ _030258 TEXT,\ _030260 TEXT,\ _030300 TEXT,\ _030301 TEXT,\ _030302 TEXT,\ _030303 TEXT,\ _030304 TEXT,\ _030305 TEXT,\ _030306 TEXT,\ _030307 TEXT,\ _030308 TEXT,\ _030310 TEXT,\ _030400 TEXT,\ _030500 TEXT,\ _030510 TEXT,\ _030520 TEXT,\ _030521 TEXT,\ _030522 TEXT,\ _030523 TEXT,\ _030524 TEXT,\ _030525 TEXT,\ _030526 TEXT,\ _030527 TEXT,\ _030528 TEXT,\ _030600 TEXT,\ _030610 TEXT,\ _030620 TEXT,\ _030621 TEXT,\ _030622 TEXT,\ _030623 TEXT,\ _030624 TEXT,\ _030700 TEXT,\ _030701 TEXT,\ _030702 TEXT,\ _030703 TEXT,\ _030704 TEXT,\ _030705 TEXT,\ _030706 TEXT,\ _030800 TEXT,\ _030801 TEXT,\ _030802 TEXT,\ _030803 TEXT,\ _030804 TEXT,\ _030900 TEXT,\ _030901 TEXT,\ _030902 TEXT,\ _030903 TEXT,\ _031000 TEXT,\ _031001 TEXT,\ company_type TEXT)").arg(tableName); QSqlQuery query; if(query.exec(sql)) { qDebug()<<QString("create %1 ok...").arg(tableName); }else{ qDebug()<<QString("create %1 fail...").arg(tableName)<<query.lastError().text(); } } // 整改结果信æ¯è¡¨ void SearchInfo::createTableRectifyResultInfo(QString tableName){ QString sql = QString("CREATE TABLE %1 (\ id INTEGER PRIMARY KEY AUTOINCREMENT,\ name VARCHAR (30),\ 修订制度 TEXT,\ 新增制度 TEXT,\ 挽回æŸå¤± TEXT,\ 剔除 TEXT,\ å®¡å‡ TEXT,\ 处ç†äºº TEXT,\ å®£è´¯åŸ¹è® TEXT,\ å…¶ä»– TEXT,\ å®¡æ ¸ç»“æžœ TEXT,\ 注销 TEXT)").arg(tableName); QSqlQuery query; if(query.exec(sql)) { qDebug()<<QString("create %1 ok...").arg(tableName); }else{ qDebug()<<QString("create %1 fail...").arg(tableName)<<query.lastError().text(); } } // 问题清å•ä¿¡æ¯è¡¨ void SearchInfo::createTableProblemListInfo(QString tableName){ QString sql = QString("CREATE TABLE %1 (\ id INTEGER PRIMARY KEY AUTOINCREMENT,\ name VARCHAR (30),\ åºå· TEXT,\ æ‘˜è¦ TEXT,\ 检查时间 TEXT,\ æ£€æŸ¥æ–¹å¼ TEXT,\ çº æ£é—®é¢˜ TEXT,\ 完善制度 TEXT,\ å®Œæˆæ—¶é—´ TEXT,\ 主è¦åŽŸå› TEXT,\ å®Œæˆæ—¶é™ TEXT,\ 主è¦åŽŸå› 1 TEXT,\ 责任部门或责任人 TEXT,\ å®Œæˆæ—¶é™1 TEXT,\ 是å¦é”€å· TEXT,\ 销巿—¶é—´ TEXT)").arg(tableName); QSqlQuery query; if(query.exec(sql)) { qDebug()<<QString("create %1 ok...").arg(tableName); }else{ qDebug()<<QString("create %1 fail...").arg(tableName)<<query.lastError().text(); } } // å•ä½ä¿¡æ¯è¡¨ å…¨ void SearchInfo::createTableAllComInfo(QString tableName){ QString sql = QString("CREATE TABLE %1 (\ id INTEGER PRIMARY KEY AUTOINCREMENT,\ name VARCHAR (30),\ code VARCHAR (30),\ 机构类型 TEXT,\ 主è¦ä¸šåŠ¡æ´»åŠ¨ TEXT,\ 行业代ç TEXT,\ å•使³¨å†Œåœ°åŠåŒºåŸŸ TEXT,\ 区域代ç TEXT,\ 城乡代ç TEXT,\ å•ä½è§„模 TEXT,\ 从业期末人数 TEXT,\ 法定代表人 TEXT,\ æ‰§è¡Œä¼šè®°æ ‡å‡†ç±»åˆ« TEXT,\ é•¿é€”åŒºå· TEXT,\ å›ºå®šç”µè¯ TEXT,\ 邮政编ç TEXT,\ 电å邮箱 TEXT,\ ç½‘å€ TEXT,\ æ˜¯å¦æœ‰ä¸Šä¸€çº§æ³•人 TEXT,\ 上一级统信代ç TEXT,\ 原组织代ç TEXT,\ 上级å•ä½åç§° TEXT,\ 是å¦è®¾ç½®æ€»å®¡è®¡å¸ˆ TEXT,\ 总审计师èŒä½å±‚级 TEXT,\ æ€»å®¡ä»»èŒæ–¹å¼ TEXT,\ 是å¦è®¾ç½®å†…审机构 TEXT,\ 内审机构åç§° TEXT,\ 领导机构 TEXT,\ 是å¦ç‹¬ç«‹è®¾ç½®å†…审机构 TEXT,\ 财务部门 INTEGER,\ 法务部门 INTEGER,\ 内部控制部门 INTEGER,\ 纪检部门 INTEGER,\ 其他部门 INTEGER,\ 内审层级 TEXT,\ ç¼–åˆ¶æ•°é‡ INTEGER,\ å®žæœ‰äººæ•°é‡ INTEGER,\ 专èŒäººå‘˜æ•°é‡ INTEGER,\ 拥有CIA人数 INTEGER,\ 硕士å¦åŽ†ä»¥ä¸Šäººæ•° INTEGER,\ 本科人数 INTEGER,\ 专科åŠä»¥ä¸‹äººæ•° INTEGER,\ 高级èŒç§°äººæ•° INTEGER,\ ä¸çº§èŒç§°äººæ•° INTEGER,\ åˆçº§èŒç§°äººæ•° INTEGER,\ æ— èŒç§°äººæ•° INTEGER,\ 五åå²ä»¥ä¸Šäººæ•° INTEGER,\ 三å至五åå²å²äººæ•° INTEGER,\ 三åå²ä»¥ä¸‹äººæ•° INTEGER,\ å®¡è®¡æ•°é‡ INTEGER,\ ä¼šè®¡æ•°é‡ INTEGER,\ ç»æµŽæ•°é‡ INTEGER,\ æ³•å¾‹æ•°é‡ INTEGER,\ ç®¡ç†æ•°é‡ INTEGER,\ ä¿¡æ¯æŠ€æœ¯æ•°é‡ INTEGER,\ å·¥ç¨‹æ•°é‡ INTEGER,\ å…¶ä»–æ•°é‡ INTEGER,\ 统计负责人 TEXT,\ 填表人 TEXT,\ è”ç³»ç”µè¯ TEXT,\ 填报日期 TEXT\ )").arg(tableName); QSqlQuery query; if(query.exec(sql)) { qDebug()<<QString("create %1 ok...").arg(tableName); }else{ qDebug()<<QString("create %1 fail...").arg(tableName)<<query.lastError().text(); } } // 整改å°è´¦ void SearchInfo::createTableStandingBook(QString tableName){ QString sql = QString("CREATE TABLE %1 (\ id INTEGER PRIMARY KEY AUTOINCREMENT,\ 审计类别 TEXT,\ 审计年度 TEXT,\ 审计å•ä½ TEXT,\ å®¡è®¡æ–¹å¼ TEXT,\ 责任主体åç§° TEXT,\ 审计项目 TEXT,\ 审计项目åç§° TEXT,\ 问题类别 TEXT,\ 问题定性 TEXT,\ 问题æè¿° TEXT,\ é—®é¢˜å®šæ€§æ³•è§„ä¾æ® TEXT,\ 涉åŠé‡‘é¢ TEXT,\ 问题æè¿°ä½è¯èµ„æ–™ TEXT,\ 审计期间已整改 TEXT,\ æ•´æ”¹é‡‘é¢ TEXT,\ 整改情况1 TEXT,\ 整改情况ä½è¯èµ„æ–™1 TEXT,\ 整改结果 TEXT,\ æ•´æ”¹å®Œæˆæ—¶é—´ TEXT,\ 尚未整改到ä½çš„åŽŸå› TEXT,\ æ•´æ”¹é¢„è®¡å®Œæˆæ—¶é—´ TEXT,\ 整改情况2 TEXT,\ 整改情况ä½è¯èµ„æ–™2 TEXT,\ 整改检查结果_检查时间 TEXT,\ 整改检查结果_æ£€æŸ¥æ–¹å¼ TEXT,\ 整改检查结果_检查结果 TEXT,\ 已整改_çº æ£é—®é¢˜ TEXT,\ 已整改_完善制度 TEXT,\ 已整改_å®Œæˆæ—¶é—´ TEXT,\ æ£åœ¨æ•´æ”¹_主è¦åŽŸå› TEXT,\ æ£åœ¨æ•´æ”¹_å®Œæˆæ—¶é™ TEXT,\ 尚未整改_主è¦åŽŸå› TEXT,\ 尚未整改_责任部门或责任人 TEXT,\ 尚未整改_å®Œæˆæ—¶é™ TEXT,\ 制度建设_修订制度 TEXT,\ 制度建设_新增制度 TEXT,\ 资金收回_挽回æŸå¤± TEXT,\ 资金收回_å…¶ä»– TEXT,\ 资金收回_å®¡å‡ TEXT,\ log_time TEXT\ )").arg(tableName); QSqlQuery query; if(query.exec(sql)) { qDebug()<<QString("create %1 ok...").arg(tableName); }else{ qDebug()<<QString("create %1 fail...").arg(tableName)<<query.lastError().text(); } } void SearchInfo::createTableHasEvidences(QString tableName) { QString sql =QString( "CREATE TABLE %1 ( \ id INTEGER PRIMARY KEY AUTOINCREMENT,\ kpi_name TEXT,\ code TEXT,\ num INTEGER,\ evidences TEXT,\ com_id INTEGER,\ time TEXT\ )").arg(tableName); QSqlQuery query; if(query.exec(sql)) { qDebug()<<QString("create %1 ok...").arg(tableName); }else{ qDebug()<<QString("create %1 fail...").arg(tableName)<<query.lastError().text(); } } void SearchInfo::createTableNoEvidences(QString tableName) { QString sql = QString("CREATE TABLE %1 (\ id INTEGER PRIMARY KEY AUTOINCREMENT,\ kpi_name TEXT,\ code TEXT,\ num INTEGER,\ com_id INTEGER,\ time TEXT\ )").arg(tableName); QSqlQuery query; if(query.exec(sql)) { qDebug()<<QString("create %1 ok...").arg(tableName); }else{ qDebug()<<QString("create %1 fail...").arg(tableName)<<query.lastError().text(); } } void SearchInfo::createTableHasUnit(QString tableName) { QString sql = QString("CREATE TABLE %1 (\ id INTEGER PRIMARY KEY AUTOINCREMENT,\ kpi_name TEXT,\ code TEXT,\ unit TEXT,\ num INTEGER,\ com_id INTEGER,\ time TEXT\ )").arg(tableName); QSqlQuery query; if(query.exec(sql)) { qDebug()<<QString("create %1 ok...").arg(tableName); }else{ qDebug()<<QString("create %1 fail...").arg(tableName)<<query.lastError().text(); } } void SearchInfo::searchComName() { QSqlQuery query; QString sql = QString("select id,name,code from company_info"); if(query.exec(sql)){ qDebug()<<"size:"<<query.numRowsAffected(); while(query.next()){ int id = query.value(0).toInt(); QString name = query.value(1).toString(); QString code = query.value(2).toString(); qDebug()<<"com select:"<<id<<name; m_comInfo[name] = id; m_comCode[name] = code; ui->comboBox_company->addItem(name); } } } QVector<QVector<QString>> SearchInfo::getResult(QString &sql,int colCnt) { QVector<QVector<QString>> resultSet; QSqlQuery query; qDebug()<<sql; if(query.exec(sql)){ while (query.next()) { QVector<QString> tmp; for(int i=0;i<colCnt;++i){ tmp.push_back(query.value(i).toString()); } resultSet.append(tmp); } } return resultSet; } void SearchInfo::setLabels() { QStringList labels,labels2,labels3; labels<<"ID"<<"æŒ‡æ ‡åç§°"<<"代ç "<<"æ•°é‡"<<"å…¬å¸ç¼–å·"<<"审计时间"<<" "; labels2<<"ID"<<"æŒ‡æ ‡åç§°"<<"代ç "<<"å•ä½"<<"æ•°é‡"<<"å…¬å¸ç¼–å·"<<"审计时间"; labels3<<"ID"<<"æŒ‡æ ‡åç§°"<<"代ç "<<"æ•°é‡"<<"ä½è¯"<<"å…¬å¸ç¼–å·"<<"审计时间"; m_labels["审计项目"] = labels; m_labels["内审工作é‡"] = labels; m_labels["问题金é¢"] = labels3; m_labels["问题个数"] = labels3; m_labels["问题整改"] = labels3; m_labels["问题整改--éžé‡‘é¢"] = labels3; m_labels["处分"] = labels; m_labels["案件线索"] = labels2; } void SearchInfo::on_pushButton_search_clicked() { // 获å–ä¿¡æ¯ï¼Œç„¶åŽæŸ¥è¯¢ QString item = ui->comboBox->currentText(); QString comName = ui->comboBox_company->currentText(); QString sql = QString("select * from %1 where com_id=%2").arg(m_itemAndTable[item]).arg(m_comInfo[comName]); if(ui->checkBox->isChecked()){ // å‹¾é€‰ä¹‹åŽ sql = QString("select * from %1 where com_id=%2 and time between '%3' and '%4'").arg(m_itemAndTable[item]).arg(m_comInfo[comName]) .arg(ui->dateEdit_begin->date().toString("yyyy-MM-dd")) .arg(ui->dateEdit_end->date().toString("yyyy-MM-dd")); } qDebug()<<__FUNCTION__<<sql; QSqlQuery query; if(query.exec(sql)){ qDebug()<<"size:"<<query.size(); m_model->setRowCount(0); int rowCnt = 0; while (query.next()) { rowCnt++; m_model->setRowCount(rowCnt); qDebug()<<query.value(0).toInt(); for(int i=0;i<7;++i){ if(query.value(i).isValid()){ m_model->setItem(rowCnt-1,i,new QStandardItem(query.value(i).toString())); } } } } } void SearchInfo::on_pushButton_export_clicked() { if(ui->comboBox_company->currentText() == "å…¬å¸åç§°"){ QMessageBox::information(this,"导出错误","请选择一个公å¸åå†å¯¼å‡º"); return; } if(ui->label_excel_path->text().size() < 5){ QMessageBox::information(this,"导出设置错误","请先在“导出设置â€é€‰æ‹©æ¨¡æ¿åŠä¿å˜æ–‡ä»¶çš„路径信æ¯"); return; } // æ¯ä¸€å¼ 表拿最新的那一批数æ®å³å¯ï¼Œç„¶åŽä¿å˜åˆ°ç”µåè¡¨æ ¼ä¸ int comId = m_comInfo[ui->comboBox_company->currentText()]; QString audit_project = QString("select kpi_name,code,num from %2 where com_id=%1 limit 10").arg(comId).arg("audit_project"); QString audit_workload = QString("select kpi_name,code,num from %2 where com_id=%1 limit 1").arg(comId).arg("audit_workload"); QString case_clue = QString("select kpi_name,code,unit,num from %2 where com_id=%1 limit 2").arg(comId).arg("case_clue"); QString problem_count = QString("select kpi_name,code,num,evidences from %2 where com_id=%1 limit 7").arg(comId).arg("problem_count"); QString problem_money = QString("select kpi_name,code,num,evidences from %2 where com_id=%1 limit 11").arg(comId).arg("problem_money"); QString problem_no_money = QString("select kpi_name,code,num,evidences from %2 where com_id=%1 limit 5").arg(comId).arg("problem_no_money"); QString problem_rectification = QString("select kpi_name,code,num,evidences from %2 where com_id=%1 limit 7").arg(comId).arg("problem_rectification"); QString punish = QString("select kpi_name,code,num from %2 where com_id=%1 limit 4").arg(comId).arg("punish"); QVector<QVector<QString>> audit_project_res = getResult(audit_project,3); QVector<QVector<QString>> audit_workload_res = getResult(audit_workload,3); QVector<QVector<QString>> case_clue_res = getResult(case_clue,4); QVector<QVector<QString>> problem_count_res = getResult(problem_count,4); QVector<QVector<QString>> problem_money_res = getResult(problem_money,4); QVector<QVector<QString>> problem_no_money_res = getResult(problem_no_money,4); QVector<QVector<QString>> problem_rectification_res = getResult(problem_rectification,4); QVector<QVector<QString>> punish_res = getResult(punish,3); qDebug()<<audit_project_res.size()<<punish_res.size(); // æ“作excel // 创建新的电åè¡¨æ ¼ // QAxObject* excel = new QAxObject("Excel.Application"); // 创建Excel对象 // excel->setProperty("Visible", false); // 设置Excelä¸å¯è§ // QAxObject* workbooks = excel->querySubObject("Workbooks"); // èŽ·å–æ‰€æœ‰å·¥ä½œç°¿ // QAxObject* workbook = workbooks->querySubObject("Add"); // æ·»åŠ æ–°å·¥ä½œç°¿ // QAxObject* worksheets = workbook->querySubObject("Worksheets"); // èŽ·å–æ‰€æœ‰å·¥ä½œè¡¨ // QAxObject* worksheet = worksheets->querySubObject("Item(int)", 1); // 获å–第一个工作表 // for (int i = 1; i <= 61; i++) { // for (int j = 1; j <= 5; j++) { // QString cellValue = "Value"; // 设置è¦å†™å…¥çš„å•å…ƒæ ¼å€¼ // worksheet->querySubObject("Cells(int, int)", i, j)->dynamicCall("SetValue(const QVariant&)", cellValue); // 写入å•å…ƒæ ¼å€¼ // } //} // æž„å»ºä¸€å¼ è¡¨ï¼š // QString cellValue = "å•ä½å†…部审计业务情况表"; // 设置è¦å†™å…¥çš„å•å…ƒæ ¼å€¼ // worksheet->querySubObject("Cells(int, int)", 1, 1)->dynamicCall("SetValue(const QVariant&)", cellValue); // 写入å•å…ƒæ ¼å€¼ // worksheet->querySubObject("Cells(int, int)", 3, 4)->dynamicCall("SetValue(const QVariant&)", "表 å·:"); // worksheet->querySubObject("Cells(int, int)", 3, 5)->dynamicCall("SetValue(const QVariant&)", "内审统02表"); // QString path = QDir::currentPath(); // qDebug()<<"path:"<<path; // path += "/debug/Data/save2.xls"; // qDebug()<<"path:"<<path; // workbook->dynamicCall("SaveAs(const QString&)", path); // ä¿å˜å·¥ä½œç°¿ // workbook->dynamicCall("Close()"); // å…³é—工作簿 // excel->dynamicCall("Quit()"); // 退出Excelåº”ç”¨ç¨‹åº // QMessageBox::information(this,"导出路径信æ¯",path); // 打开已å˜åœ¨çš„电åè¡¨æ ¼ï¼Œç„¶åŽå¾€é‡Œå†™å…¥æ•°æ® // :/mayi/附件3_内审统02表_å•ä½å†…部审计业务情况表.xls QAxObject excel("Excel.Application"); excel.setProperty("Visible",false); excel.setProperty("DisplayAlerts",false); //QString str = "D:/Qt/QtP/build-internal_system_v1-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/Data/附件3_内审统02表_å•ä½å†…部审计业务情况表.xls"; QString str = ui->label_excel_path->text(); qDebug()<<"open:"<<str; qDebug()<<"excel:"<<excel.className(); QAxObject * wbs = excel.querySubObject("WorkBooks"); QAxObject * wb = wbs->querySubObject("Open(QString&)",str); 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(); qDebug()<<valRows[11].toList().at(4); sheet->querySubObject("Cells(int, int)", 7, 2)->dynamicCall("SetValue(const QVariant&)", ui->comboBox_company->currentText()); sheet->querySubObject("Cells(int, int)", 6, 2)->dynamicCall("SetValue(const QVariant&)", m_comCode[ui->comboBox_company->currentText()]); // 写入审计项目 一 qDebug()<<"size:"<<audit_project_res.size(); QString it = audit_project_res[0][2]; //sheet->querySubObject("Cells(int, int)", 13, 5)->dynamicCall("SetValue(doubule)", 4.5); for(int i=0;i<audit_project_res.size();++i){ sheet->querySubObject("Cells(int, int)", 11+i, 5)->dynamicCall("SetValue(const QVariant&)", audit_project_res[i][2].toDouble()); } // å†™å…¥å®¡è®¡å·¥ä½œé‡ äºŒ for(int i=0;i<audit_workload_res.size();++i){ sheet->querySubObject("Cells(int, int)", 21+i, 5)->dynamicCall("SetValue(const QVariant&)", audit_workload_res[i][2].toDouble()); } // å†™å…¥é—®é¢˜é‡‘é¢ ä¸‰ for(int i=0;i<problem_money_res.size();++i){ sheet->querySubObject("Cells(int, int)", 22+i, 5)->dynamicCall("SetValue(const QVariant&)", problem_money_res[i][2].toDouble()); } // 写入问题个数 å›› for(int i=0;i<problem_count_res.size();++i){ sheet->querySubObject("Cells(int, int)", 33+i, 5)->dynamicCall("SetValue(const QVariant&)", problem_count_res[i][2].toDouble()); } // 写入问题整改(金é¢) 五 for(int i=0;i<problem_rectification_res.size();++i){ sheet->querySubObject("Cells(int, int)", 40+i, 5)->dynamicCall("SetValue(const QVariant&)", problem_rectification_res[i][2].toDouble()); } // 写入问题整改(éžé‡‘é¢) å… for(int i=0;i<problem_no_money_res.size();++i){ sheet->querySubObject("Cells(int, int)", 47+i, 5)->dynamicCall("SetValue(const QVariant&)", problem_no_money_res[i][2].toDouble()); } // 写入处分 七 for(int i=0;i<punish_res.size();++i){ sheet->querySubObject("Cells(int, int)", 52+i, 5)->dynamicCall("SetValue(const QVariant&)", punish_res[i][2].toDouble()); } // 写入案件线索 å…« for(int i=0;i<case_clue_res.size();++i){ sheet->querySubObject("Cells(int, int)", 56+i, 5)->dynamicCall("SetValue(const QVariant&)", case_clue_res[i][2].toDouble()); } } //wb->dynamicCall("Save()"); // 若文件已å˜åœ¨ï¼Œåˆ™ç›´æŽ¥ä¿å˜ //wb->dynamicCall("SaveAs(const QString&)", str); // ä¿å˜å·¥ä½œç°¿ï¼Œè‹¥æ–‡ä»¶ä¸å˜åœ¨ï¼Œåˆ™å¸¦åå—ä¿å˜ if(ui->lineEdit_excel_save->text().size() > 1){ wb->dynamicCall("SaveAs(const QString&)", ui->lineEdit_excel_save->text()); // ä¿å˜å·¥ä½œç°¿ï¼Œè‹¥æ–‡ä»¶ä¸å˜åœ¨ï¼Œåˆ™å¸¦åå—ä¿å˜ qDebug()<<"ä¿å˜åˆ°æ–°æ–‡ä»¶ä¸"; }else{ wb->dynamicCall("Save()"); // 直接ä¿å˜åˆ°æ¨¡æ¿æ–‡ä»¶ä¸ qDebug()<<"ä¿å˜åˆ°è€æ–‡ä»¶ä¸"; } wbs->dynamicCall("Close()"); excel.dynamicCall("Quit(void)"); QMessageBox::information(this,"导出æˆåŠŸ",QString("导出æˆåŠŸï¼Œæ–‡ä»¶è·¯å¾„ä¸º:%1").arg(ui->lineEdit_excel_save->text())); } void SearchInfo::on_comboBox_currentIndexChanged(const QString &arg1) { m_model->setHorizontalHeaderLabels(m_labels[arg1]); } void SearchInfo::on_toolButton_seleceExcel_clicked() { if(ui->comboBox_company->currentText() == "å…¬å¸åç§°"){ QMessageBox::information(this,"导出设置错误","请选择一个公å¸åå†è®¾ç½®"); return; } QString path = QFileDialog::getOpenFileName(this,"é€‰æ‹©è¡¨æ ¼æ¨¡æ¿:å•ä½å†…部审计业务情况表","./","excel(*å•ä½å†…部审计业务情况表.xls)"); if(path.isNull()) return; ui->label_excel_path->setText(path); QStringList paths = path.split("."); QString newPath = paths.at(0)+"_"+ui->comboBox_company->currentText()+"."+paths.at(1); ui->lineEdit_excel_save->setText(newPath); } void SearchInfo::on_comboBox_company_currentIndexChanged(const QString &arg1) { if(ui->lineEdit_excel_save->text().size() > 5){ QStringList paths = ui->label_excel_path->text().split("."); QString newPath = paths.at(0)+"_"+arg1+"."+paths.at(1); ui->lineEdit_excel_save->setText(newPath); } } void SearchInfo::addComName(QString name) { ui->comboBox_company->addItem(name); } void SearchInfo::on_checkBox_clicked() { if(ui->checkBox->isChecked()){ ui->dateEdit_begin->setEnabled(true); ui->dateEdit_end->setEnabled(true); }else{ ui->dateEdit_begin->setEnabled(false); ui->dateEdit_end->setEnabled(false); } }