插入图片

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值