首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何编程(VBA/NetOffice)插入Bitmap Excel对象?

如何编程(VBA/NetOffice)插入Bitmap Excel对象?
EN

Stack Overflow用户
提问于 2019-07-11 09:21:38
回答 1查看 297关注 0票数 1

我需要从ms-word文档中的Excel路径创建一个Bitmap对象,而且我似乎无法一步一步地找到一种方法。

目前的解决方案如下。

  1. 创建字段对象
  2. 取消字段对象的链接

如下所示:

代码语言:javascript
复制
Dim fld As Field
Set fld = Selection.Fields.Add(Selection.Range, WdFieldType.wdFieldLink, "Excel.Sheet.12 ""[Path to Xlsx]"" ""[Sheet+Range]"" \b", False)
fld.Update
fld.Unlink
  • \b说该字段应该表示为位图对象。
  • 使用fld.Unlink,我将删除链接并保留位图。

有没有一种方法可以直接创建位图对象(InlineShape)而不使用字段方法?

我试图在ms-word中记录一个宏,以查看ms-word是如何实现的,但可悲的是,它只给出了这样的结果:

代码语言:javascript
复制
Selection.PasteSpecial Link:=False, DataType:=wdPasteBitmap, Placement:= wdInLine, DisplayAsIcon:=False

如果可能的话,我想避免使用剪贴板和PasteSpecial。

编辑:

因为给出的答案告诉我,我的问题没有我希望的那么清楚。

所以首先,我目前唯一的信息是

  1. XLSX文件的路径。
  2. 所述XLSX文件的工作表和范围

例如:C:\test\myWorkbook.xlsx Sheet1!A1:D10

这就是我所掌握的全部信息。有了这个信息,我需要在我的ms文档中编程创建一个位图。

如上面所示,我已经有了一个解决方案,它正是这样做的,方法是执行一个指向上述XLSX文件的链接,并在更新之后删除该链接,使其只剩下位图。一个位图留在这里是因为\b标志告诉链接生成一个位图,而不是RTF/HTML。

我现在的问题是,我现在是否还有别的办法。

目前的答案是,在我的ms-word文档中确实插入了位图吗?但是我从哪里得到位图,因为答案并不知道我需要excel工作簿的图像这一事实?正如我前面所说,我只有有限的信息,没有位图。

通过使用粘贴特殊功能https://support.office.com/en-us/article/paste-special-e03db6c7-8295-4529-957d-16ac8a778719,无需编程就可以实现我想要实现的目标

  1. 开放Xlsx/Docx
  2. 从Xlsx复制单元格
  3. 去Docx
  4. 使用糊状特殊
  5. 选择位图
  6. 命中OK

您在Docx中接收到的输出是我希望通过编程实现的,没有剪贴板和粘贴特殊,如果可能的话,使用比我现在更好的解决方案。

EN

回答 1

Stack Overflow用户

发布于 2019-07-11 09:38:38

您可以使用以下代码:

代码语言:javascript
复制
string fileName = "c://msdn.bmp";  //the picture file to be inserted
Object oMissed = doc.Paragraphs[2].Range; //the position you want to insert
Object oLinkToFile = false;  //default
Object oSaveWithDocument = true;//default
doc.InlineShapes.AddPicture(fieldName, ref  oLinkToFile, ref  oSaveWithDocument, ref  oMissed);  

有关详细信息,请参阅使用c#将图片插入word文档中?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56985842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档