|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "ExcelEngine.h"
|
|
|
|
|
|
|
|
|
|
// 扩展Excel引擎,支持导出图片,暂未涉及
|
|
|
|
|
class I_PLUGIN_EXPORT ExcelEngineEx : public ExcelEngine
|
|
|
|
|
{
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
ExcelEngineEx();
|
|
|
|
|
~ExcelEngineEx();
|
|
|
|
|
|
|
|
|
|
/// @brief 获取excel的数据信息
|
|
|
|
|
/// @note bAutoLoad是否自动加载首页信息
|
|
|
|
|
virtual bool loadExcel(const QString &sFilePath, bool bAutoLoad = true);
|
|
|
|
|
|
|
|
|
|
/// @brief 获取excel的数据(组成的矩形网格),注:Excel的索引均是从1开始
|
|
|
|
|
/// @param vvecData 获取到的数据
|
|
|
|
|
/// @param nRowFrom Excel开始行,从1开始
|
|
|
|
|
/// @param nColFrom Excel开始列,从1开始
|
|
|
|
|
/// @param nRowTo Excel结束行,从1开始,默认为-1,nRowTo=最大行数
|
|
|
|
|
/// @param nColTo Excel结束列,从1开始,默认为-1,nColTo=最大列数
|
|
|
|
|
virtual bool getCellValues(VVecVariant& vvecData, \
|
|
|
|
|
int nRowFrom = 1, int nColFrom = 1, int nRowTo = -1, int nColTo = -1);
|
|
|
|
|
|
|
|
|
|
/// @brief 设置excel的数据(组成的矩形网格),注:Excel的索引均是从1开始
|
|
|
|
|
/// @param vvecData 需要填充设置的数据
|
|
|
|
|
/// @param nRowFrom Excel开始行,从1开始
|
|
|
|
|
/// @param nColFrom Excel开始列,从1开始
|
|
|
|
|
/// @param bFormat 设置数据之后,是否重置表格样式
|
|
|
|
|
virtual bool setCellValues(const VVecVariant& vvecData, \
|
|
|
|
|
int nRowFrom = 1, int nColFrom = 1, \
|
|
|
|
|
bool bFormat = false);
|
|
|
|
|
|
|
|
|
|
/// @brief 在设置完毕数据后,对Range进行格式调整
|
|
|
|
|
virtual bool formatRange(QAxObject*& pRange);
|
|
|
|
|
|
|
|
|
|
/// @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 fImgColWidth, \
|
|
|
|
|
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);
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|