#pragma once #include "ExcelEngineAx.h" // Excel+ActiveX,与Office关联的实现 // 在此基础上,扩展Excel引擎,支持导出图片,暂未涉及(原先地面管柱优化用过) class I_PLUGIN_EXPORT ExcelEngineAxEx : public ExcelEngineAx { Q_OBJECT public: ExcelEngineAxEx(); ~ExcelEngineAxEx(); #ifdef Q_OS_WIN public: /// @brief 导出图片格式的内容 /// @param vvecData 数据 /// @param pVecTitles 标题(可以为空) /// @param mapImgs 图片,行位置对应 /// @param mapSizes 图片Size,行位置对应 /// @param nRowFrom Excel开始行,从1开始 /// @param nColFrom Excel开始列,从1开始 /// @param fImgColWidth图片列 宽度 /// @param nTemplIndex模板,0:魏氏、1:马氏 /// @param sLog 日志 virtual bool runBatchValues(VVecVariant vvecData, QStringList* pVecTitles, \ QMap& mapImgs, QMap& mapSizes, \ int nRowFrom, int nColFrom, \ double dImgColWidth, \ int nTemplIndex, \ QString& sLog); /// @brief 读取图片格式+文本格式的内容 /// @param vvecData 数据 /// @param mapImgs 图片,行位置对应 /// @param mapSizes 图片Size,行位置对应 /// @param nRowFrom Excel开始行,从1开始 /// @param nColFrom Excel开始列,从1开始 /// @param nTemplIndex模板,0:魏氏、1:马氏 /// @param sLog 日志 virtual bool getBatchValues(VVecVariant& vvecData, \ QMap& mapImgs, QMap& mapSizes, \ int nRowFrom, int nColFrom, \ int nTemplIndex, \ QString& sLog); protected: /// @brief 解析图片Map的Value virtual bool checkImgFile(QString& sImg); /// @brief 对Size进行调整,变为实际Excel大小 virtual bool checkImgSizes(QMap& map, double dImgWidthMax); /// @brief 图片插入完成后,对图片列进行调整 /// @note r1<=r2 c1<=c2 virtual bool formatImgsBounds(int r1, int r2, int c1, int c2); #endif };