visual studio 使用 QXlsx 介绍以及坑

发布于:2024-11-27 ⋅ 阅读:(151) ⋅ 点赞:(0)

坑点

public: virtual int __thiscall QXlsx::Document::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@Document@QXlsx@@UAEHW4Call@QMetaObject@@HPAPAX@Z)

建立项目没有选择qt lib 没有meta
在这里插入图片描述
选择创建qt的库,新建空项目转qt有问题
在这里插入图片描述

在这里插入图片描述

使用

    std::string strFileName = "参数数据";
    QDate date = QDate::currentDate();
    QString strFilePath = QFileDialog::getSaveFileName(this, TransString2Unicode("保存文件"), TransString2Unicode(strFileName) + date.toString("yyyyMMdd"), TransString2Unicode("(*.xlsx)"));
    if (strFilePath.isEmpty())
    {
        return;
    }

    Document xlsx;

    std::vector<CHeadInfo> vecHeadInfos = m_pParameterManager->GetModelRelatedHead().m_vecHeadInfos;
    for (size_t i = 1; i < vecHeadInfos.size(); i++)
    {
        xlsx.write(1, i, TransString2Unicode(vecHeadInfos[i].m_strHeadContent));
    }

    std::vector<std::shared_ptr<CRelateModelData>> vecRelateModelDatas =  m_pParameterManager->GetRecordData();

    for (size_t i = 0; i < vecRelateModelDatas.size(); i++)
    {
        std::shared_ptr<CParameter> pParameter = std::dynamic_pointer_cast<CParameter>(vecRelateModelDatas[i]);
        xlsx.write(2 + i, 1, TransString2Unicode(pParameter->GetParaSrcString()));
        xlsx.write(2 + i, 2, pParameter->m_recvDateTime.toString("yyyy-MM-dd HH:mm:ss"));
        xlsx.write(2 + i, 3, pParameter->m_dAngleXMajor);
        xlsx.write(2 + i, 4, pParameter->m_dAngleYMinor);
        xlsx.write(2 + i, 5, pParameter->m_dAngle);
        xlsx.write(2 + i, 6, pParameter->m_dRadiantIntensity);
        xlsx.write(2 + i, 7, pParameter->m_dAngularFluence);
        xlsx.write(2 + i, 8, pParameter->m_dZ2);
        xlsx.write(2 + i, 9, pParameter->m_dZ9);
    }

    bool bRet = xlsx.saveAs(strFilePath);
    if (!bRet)
    {
        QMessageBox::critical(this, TransString2Unicode("错误"), TransString2Unicode("创建文件失败!"));
        return;
    }

网站公告

今日签到

点亮在社区的每一天
去签到