admin 管理员组

文章数量: 887021

插入图片

往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没有退出。

本文标签: 插入图片