| | |
| | | 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)"); |
| | |
| | | |
| | | } |
| | | |
| | | int ExportToFile::saveToExcelFromThreeMergePro() |
| | | 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; |
| | | } |
| | | |
| | |
| | | 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)"); |
| | |
| | | |
| | | if(savePath.size() > 0){ |
| | | QAxObject excel("ket.Application"); |
| | | if(!excel.setControl("ket" |
| | | ".Application")){ // windows内核 |
| | | if(!excel.setControl("ket.Application")){ // windows内核 |
| | | excel.setControl("Excel.Application"); // wps内核 |
| | | } |
| | | |
| | |
| | | excel.setProperty("DisplayAlerts",false); |
| | | QAxObject * wbs = excel.querySubObject("WorkBooks"); |
| | | qDebug()<<"wbs:"<<wbs->className(); |
| | | //QAxObject * wb = wbs->querySubObject("Open(QString&)",demoPath); |
| | | QAxObject * wb = wbs->querySubObject("Open(QString&)",demoPath); |
| | | qDebug()<<"wb open ok"; |
| | | QAxObject * shs = wb->querySubObject("WorkSheets"); // WorkSheets 也可以 |