1、根据给定的单元格位置和图片路径,在 Excel 工作表中插入图片,并调整图片的大小和位置。
_Application app;//创建一个Excel应用程序对象。
Workbooks books; //创建一个工作簿集合对象。
_Workbook book; //创建一个工作簿对象。
_Worksheet sheet; //创建一个工作表对象。
Range range; //创建一个范围对象
//get a new workbook
books = app.GetWorkbooks();
book = books.Add(covOptional);
sheets = book.GetSheets();
//get the first sheet
sheet = sheets.GetItem(COleVariant((short)1));
CString imagePath = "";
CString picname = “test.png”;
Pos.Format("%s", GetCellName(1, 0).c_str()); // 获取单元格名称,并将其格式化为字符串 Pos
range = sheet.GetRange(COleVariant(Pos), COleVariant(Pos)); //- 获取指定单元格范围 range。
range.SetNumberFormatLocal(_variant_t("@")); \\设置单元格的数字格式为文本
imagePath = env + "\\" + picname; \\构建图片路径 imagePath
float averHeight = (float)range.GetHeight().dblVal/cnt; \\计算每个图片的平均高度 averHeight,一行里插入多张图片,且是竖排,其中cnt是插入图片个数
double height = 0;
height = averHeight*m; \\计算当前图片的插入高度 height,m代表第几张图片
CShapes objshapes = sheet.GetShapes(); \\- 获取工作表中的形状集合 objshapes。
CShape m_shape = objshapes.AddPicture(imagePath, false, true, (float)range.GetLeft().dblVal + 1, (float)range.GetTop().dblVal + height + 0.5, (float)range.GetWidth().dblVal, averHeight);
\\在指定位置插入图片 m_shape,并设置图片的大小和位置。
总结来说,这段代码的主要功能是根据给定的单元格位置和图片路径,在 Excel 工作表中插入图 片,并调整图片的大小和位置。
2、在 Microsoft Word 文档的指定单元格范围内插入图片
MS_WORD_NS::Range range;
MS_WORD_NS::Cell cell;
imagePath = env + "\\" + picname; //图片路径
MS_WORD_NS::InlineShapes objInlineShapes = range.GetInlineShapes(); //获取指定范围 range 内的内嵌形状集合 objInlineShapes
MS_WORD_NS::InlineShape objInlineShape = objInlineShapes.AddPicture(imagePath,COleVariant((short)FALSE), COleVariant((short)TRUE), &_variant_t(cell.GetRange())); //在指定的单元格范围 cell.GetRange() 内插入图片 objInlineShape
objInlineShapes.ReleaseDispatch(); //释放 objInlineShapes 对象的调度接口。
总结来说,这段代码的主要功能是根据给定的图片路径,在 Microsoft Word 文档的指定单元格范围内插入图片,并释放相关资源。