Qt之导入文件到excel

发现没有人逃得过导出文件导入文件,如果有,那就是时候未到

QString filepath = QFileDialog::getOpenFileName(this,QStringLiteral("选择Excel文件"),"",tr("Exel file(*.xls *.xlsx)"));
    if(!filepath.isEmpty())
    {
        QAxObject *excel = new QAxObject(this);	//连接Excel控件
        if (excel->setControl("Excel.Application"))
        {
            qDebug() << "选择了Excel";
        }
        else
        {
            qDebug() << "选择了ket";
            excel->setControl("ket.Application");  //连接Excel控件
        }
        //不显示窗体
        excel->dynamicCall("SetVisible (bool Visible)","false");
        //不显示任何警告信息。如果为true那么在关闭是会出现类似“文件已修改,是否保存”的提示
        excel->setProperty("DisplayAlerts", false);
        //获取工作簿集合
        QAxObject *workbooks = excel->querySubObject("WorkBooks");
        //打开打开已存在的工作簿
        workbooks->dynamicCall("Open(const QString&)", filepath);
        //获取当前工作簿
        QAxObject* workbook = excel->querySubObject("ActiveWorkBook");
        //获取工作表集合
        QAxObject *worksheets = workbook->querySubObject("Sheets");
        //获取工作表集合的工作表1,即sheet1
        QAxObject *worksheet = workbook->querySubObject("WorkSheets(int)",1);
        QAxObject* range = worksheet->querySubObject("UsedRange"); //获取该sheet的使用范围对象
        QVariant var = range->dynamicCall("Value");
        delete range;
        QVariantList varRows = var.toList();  //得到表格中的所有数据
        if(varRows.isEmpty())
        {
            return;
        }
        const int rowCount = varRows.size();
        QStringList m_id,m_class,m_name,m_age;
        for(int i = 1; i < rowCount; ++i)   //
        {
            QVariantList rowData = varRows[i].toList();
            m_id<

用上一个博客生成的Excel,点击导入之后打印结果:

导入实验就做好了,如果数据量大就多开线程吧

下载链接,不过没别的东西:https://download.csdn.net/download/qq_41399894/11424016

 

你可能感兴趣的:(Qt)