wumu
2023-07-31 91343c3ca84cffa9b3d78dde393877cc311f8bc8
0731
5个文件已修改
280 ■■■■■ 已修改文件
internal_system_v1/clientmainwindow.ui 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
internal_system_v1/coverinfo.cpp 162 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
internal_system_v1/coverinfo.h 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
internal_system_v1/coverinfo.ui 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
internal_system_v1/internal_system_v1.pro 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
internal_system_v1/clientmainwindow.ui
@@ -18,7 +18,7 @@
    <item row="0" column="0">
     <widget class="QTabWidget" name="tabWidget">
      <property name="currentIndex">
       <number>0</number>
       <number>2</number>
      </property>
      <widget class="QWidget" name="tab">
       <attribute name="title">
@@ -27,7 +27,7 @@
      </widget>
      <widget class="QWidget" name="tab_2">
       <attribute name="title">
        <string>审计</string>
        <string>业务情况表</string>
       </attribute>
       <layout class="QGridLayout" name="gridLayout_2">
        <item row="0" column="0">
@@ -157,6 +157,115 @@
        </item>
       </layout>
      </widget>
      <widget class="QWidget" name="tab_4">
       <attribute name="title">
        <string>统计综合表</string>
       </attribute>
       <layout class="QGridLayout" name="gridLayout_3">
        <item row="0" column="0">
         <widget class="QTableWidget" name="tableWidget">
          <attribute name="verticalHeaderVisible">
           <bool>false</bool>
          </attribute>
          <row>
           <property name="text">
            <string>新建行</string>
           </property>
          </row>
          <column>
           <property name="text">
            <string>指标名称</string>
           </property>
          </column>
          <column>
           <property name="text">
            <string>代码</string>
           </property>
          </column>
          <column>
           <property name="text">
            <string>计量单位</string>
           </property>
          </column>
          <column>
           <property name="text">
            <string>总计</string>
           </property>
          </column>
          <column>
           <property name="text">
            <string>企业(不含金融企业)</string>
           </property>
          </column>
          <column>
           <property name="text">
            <string>金融企业</string>
           </property>
          </column>
          <column>
           <property name="text">
            <string>机关</string>
           </property>
          </column>
          <column>
           <property name="text">
            <string>事业单位</string>
           </property>
          </column>
          <column>
           <property name="text">
            <string>其他</string>
           </property>
          </column>
          <item row="0" column="0">
           <property name="text">
            <string>甲</string>
           </property>
          </item>
          <item row="0" column="1">
           <property name="text">
            <string>乙</string>
           </property>
          </item>
          <item row="0" column="2">
           <property name="text">
            <string>丙</string>
           </property>
          </item>
          <item row="0" column="3">
           <property name="text">
            <string>1</string>
           </property>
          </item>
          <item row="0" column="4">
           <property name="text">
            <string>2</string>
           </property>
          </item>
          <item row="0" column="5">
           <property name="text">
            <string>3</string>
           </property>
          </item>
          <item row="0" column="6">
           <property name="text">
            <string>4</string>
           </property>
          </item>
          <item row="0" column="7">
           <property name="text">
            <string>5</string>
           </property>
          </item>
          <item row="0" column="8">
           <property name="text">
            <string>6</string>
           </property>
          </item>
         </widget>
        </item>
       </layout>
      </widget>
      <widget class="QWidget" name="tab_3">
       <attribute name="title">
        <string>QXlsx</string>
internal_system_v1/coverinfo.cpp
@@ -1,6 +1,7 @@
#include "coverinfo.h"
#include "ui_coverinfo.h"
#include <QDebug>
#include <QDirIterator>
CoverInfo::CoverInfo(QWidget *parent) :
    QMainWindow(parent),
@@ -17,8 +18,161 @@
void CoverInfo::readInfo()
{
    QXlsx::Document doc("./debug/Data/test.xlsx");
    QString cc = doc.read("A1").toString();
    qDebug()<<"cc"<<cc;
    ui->label_creditCode->setText(cc);
//    QXlsx::Document doc("./debug/Data/test.xlsx");
//    QString cc = doc.read("A1").toString();
//    qDebug()<<"cc"<<cc;
//    ui->label_creditCode->setText(cc);
    QString dirPath = "./debug/Data";
    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;
//                        }
//                    }
//                }
                // 统一信用代码
                QVariant uniCode = valRows[9].toList().at(3);
                if(uniCode.isValid()){
                    ui->label_creditCode->setText(uniCode.toString());
                }
                // 单位名称
                QVariant name = valRows[9].toList().at(8);
                if(name.isValid()){
                    ui->label_name->setText(name.toString());
                }
                // 机构类型
                QVariant comType = valRows[12].toList().at(3);
                if(comType.isValid()){
                    ui->label_comType->setText(comType.toString());
                }
                // 主要业务活动
                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);
                }
                // 业务代码
                QVariant busCode = valRows[19].toList().at(4);
                if(busCode.isValid()){
                    ui->label_businessCode->setText(busCode.toString());
                }
                // 注册地址
                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);
                // 区域代码
                QVariant areaCode = valRows[24].toList().at(2);
                if(areaCode.isValid()) ui->label_areaCode->setText(areaCode.toString());
                // 城乡代码
                QVariant townCode = valRows[24].toList().at(6);
                if(townCode.isValid()) ui->label_townCode->setText(townCode.toString());
                // 单位规模
                QVariant scale = valRows[25].toList().at(3);
                if(scale.isValid()) ui->label_scale->setText(scale.toString());
                // 从业人数
                QVariant people = valRows[26].toList().at(6);
                if(people.isValid()) ui->label_people->setText(people.toString());
                // 法人
                QVariant representative = valRows[27].toList().at(4);
                if(representative.isValid()) ui->label_representative->setText(representative.toString());
                // 会计标准类别 standardType
                QVariant standardType = valRows[27].toList().at(8);
                if(standardType.isValid()) ui->label_standardType->setText(standardType.toString());
                // 长途区号
                QVariant trunkCode = valRows[31].toList().at(2);
                if(trunkCode.isValid()) ui->label_trunkCode->setText(trunkCode.toString());
                // 固定电话
                QVariant fixedTel = valRows[32].toList().at(2);
                if(fixedTel.isValid()) ui->label_fixedTel->setText(fixedTel.toString());
                // 邮政编码
                QVariant postCode = valRows[33].toList().at(2);
                if(postCode.isValid()) ui->label_postCode->setText(postCode.toString());
                // 电子邮箱
                QVariant email = valRows[30].toList().at(5);
                if(email.isValid()) ui->label_email->setText(email.toString());
                // 网址
                QVariant webSite = valRows[32].toList().at(5);
                if(webSite.isValid()) ui->label_webSite->setText(webSite.toString());
            }
            wbs->dynamicCall("Close()");
            excel.dynamicCall("Quit(void)");
        }
    }
//    QAxObject excel("./debug/Data/附件2_内审统01表_单位及内部审计机构基本情况表-1.301版(1).xls");
//    excel.setProperty("Visible",true);
//    excel.setProperty("DisplayAlerts",false);
}
internal_system_v1/coverinfo.h
@@ -3,6 +3,7 @@
#include <QMainWindow>
#include "xlsxdocument.h"
#include <QAxObject>
namespace Ui {
class CoverInfo;
internal_system_v1/coverinfo.ui
@@ -565,7 +565,7 @@
     <set>Qt::AlignCenter</set>
    </property>
   </widget>
   <widget class="QLabel" name="label_Representative">
   <widget class="QLabel" name="label_representative">
    <property name="geometry">
     <rect>
      <x>420</x>
internal_system_v1/internal_system_v1.pro
@@ -4,7 +4,7 @@
#
#-------------------------------------------------
QT       += core gui
QT       += core gui axcontainer
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets