You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nmWTAI-Platform/Include/iBase/iPlugin/ExcelEngineAxEx.h

66 lines
2.3 KiB
C

#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<int, QString>& mapImgs, QMap<int, QPointF>& 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<int, QString>& mapImgs, QMap<int, QPointF>& 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<int, QPointF>& map, double dImgWidthMax);
/// @brief 图片插入完成后,对图片列进行调整
/// @note r1<=r2 c1<=c2
virtual bool formatImgsBounds(int r1, int r2, int c1, int c2);
#endif
};