插入图片
往excel中插入图片
根据excel录制宏后生成的vb代码进行改写即可,插入图片的接口:
CShapes 类下的函数
LPDISPATCH AddPicture(LPCTSTR Filename, long LinkToFile, long SaveWithDocument, float Left, float Top, float Width, float Height);
Filename:插入的图片名称,如果图片不存在,则会出错
LinkToFile:一般写成1就行
SaveWithDocument:写成1就行
float Left, float Top, float Width, float Height:要插入图片的位置和宽高
CWorksheet sheet; // 需要自己创建app后绑定sheet
CShapes cshapes;
CRange rangePic;
VARIANT varTmp;
LPDISPATCH lpDisp;
float fTopPic = 0.0, fLeftPic = 0.0, fBottomPic = 0.0, fRightPic = 0.0;CString strTemp;rangePic.AttachDispatch(sheet.get_Range(_variant_t(_T("A1")), _variant_t(_T("C5"))), TRUE); //起始位置A1,终止位置C5
varTmp = rangePic.get_Top();
fTopPic = (float)varTmp.dblVal;
varTmp = rangePic.get_Left();
fLeftPic = (float)varTmp.dblVal;
varTmp = rangePic.get_Height();
fBottomPic = (float)varTmp.dblVal;
varTmp = rangePic.get_Width();
fRightPic = (float)varTmp.dblVal;cshapes.AttachDispatch(sheet.get_Shapes(), TRUE);lpDisp = cshapes.AddPicture(_T(strPicName), 1, 1, fLeftPic, fTopPic, fRightPic, fBottomPic);
ASSERT(lpDisp);
lpDisp->Release();
cshapes.ReleaseDispatch();
cshapes.DetachDispatch();
rangePic.ReleaseDispatch();
还是要强调releasedispatch,不然excel没有退出,在任务管理器里会有EXCEL32.EXE没有退出。
插入图片
往excel中插入图片
根据excel录制宏后生成的vb代码进行改写即可,插入图片的接口:
CShapes 类下的函数
LPDISPATCH AddPicture(LPCTSTR Filename, long LinkToFile, long SaveWithDocument, float Left, float Top, float Width, float Height);
Filename:插入的图片名称,如果图片不存在,则会出错
LinkToFile:一般写成1就行
SaveWithDocument:写成1就行
float Left, float Top, float Width, float Height:要插入图片的位置和宽高
CWorksheet sheet; // 需要自己创建app后绑定sheet
CShapes cshapes;
CRange rangePic;
VARIANT varTmp;
LPDISPATCH lpDisp;
float fTopPic = 0.0, fLeftPic = 0.0, fBottomPic = 0.0, fRightPic = 0.0;CString strTemp;rangePic.AttachDispatch(sheet.get_Range(_variant_t(_T("A1")), _variant_t(_T("C5"))), TRUE); //起始位置A1,终止位置C5
varTmp = rangePic.get_Top();
fTopPic = (float)varTmp.dblVal;
varTmp = rangePic.get_Left();
fLeftPic = (float)varTmp.dblVal;
varTmp = rangePic.get_Height();
fBottomPic = (float)varTmp.dblVal;
varTmp = rangePic.get_Width();
fRightPic = (float)varTmp.dblVal;cshapes.AttachDispatch(sheet.get_Shapes(), TRUE);lpDisp = cshapes.AddPicture(_T(strPicName), 1, 1, fLeftPic, fTopPic, fRightPic, fBottomPic);
ASSERT(lpDisp);
lpDisp->Release();
cshapes.ReleaseDispatch();
cshapes.DetachDispatch();
rangePic.ReleaseDispatch();
还是要强调releasedispatch,不然excel没有退出,在任务管理器里会有EXCEL32.EXE没有退出。