在Excel单元格中插入图片

139

我想生成一份带有图片的报告,但我无法将图片放在单个单元格中。我可以让这些图片在工作表中“浮动”,但我需要把它们放入一个单元格中。我该怎么做?


我需要每个单元格一个图片,我已经尝试了插入图片和特殊粘贴。 - Reid
5
你无法在单元格中放置图片,只能将其放置在单元格上方。所有的图片都会浮动在工作表上。你可以通过设置图片的TopLeft属性来将其定位到单元格上方。如果你编辑你的问题并附上你正在使用的代码,我们就更容易向你提供可能适合你的方法。 - Tim Williams
3
参见此教程,了解“悬浮于单元格上”和“注释”两种插入图片的方法。 - Nigel Touch
微软,如果你在听,请确保调整行或列的大小时尊重图像的大小!!!非常重要! - Entree
面临类似问题,我决定在Microsoft Word表格中构建报告。您只需将图像粘贴到表格单元格中即可。 - OutstandingBill
显示剩余3条评论
6个回答

114
您可以在评论中添加图片。

右键单击单元格 > 插入批注 > 在批注框外部的阴影区域上右键单击 > 格式化批注 > 颜色和线条 > 填充 > 颜色 > 填充效果 > 图片 > (浏览到图片) > 点击“确定”

当鼠标悬停时,图像将出现。 Microsoft Office 365 (2019)引入了称为“评论”的新功能,并将旧的评论重命名为“注释”。因此,在上述步骤中,应选择新建注释而不是插入批注。所有其他步骤保持不变,该功能仍然存在。
此外,还有一款价格为$20的Windows产品-Excel Image Assistant...

15
很遗憾,它不能与剪贴板图像一起使用。 - Mauricio Quintana
15
注意:重要的是在评论框的边界上右键单击,而不是在其中,因为在每种情况下,格式化评论对话框窗口的选项将有所不同。 - Developer Marius Žilėnas
2
我并不满意这个结果,因为当我将鼠标悬停在图片上时,我发现 Excel 调整了它的大小,导致图片变形且无法使用。 - wytten
2
@wytten 有一个选项可以锁定纵横比(因此不会扭曲)。话虽如此,我也觉得图片在评论框中而不是单元格中很糟糕。 - Daniel Sparing
4
似乎在Mac上无法工作。不管我做什么,都找不到“颜色和线条”选项。 - Andy Song
显示剩余3条评论

57

有一种更快的方法 (https://www.youtube.com/watch?v=TSjEMLBAYVc):

  1. 将图像插入到Excel中 (Ctrl+V)。
  2. 确保 "图片工具 -> 对齐 -> 吸附到网格" 已经被选中。
  3. 调整图像大小以适应单元格 (或多个单元格)。
  4. 右键单击图像,然后选择 "大小和属性... -> 属性 -> 随单元格移动和调整大小"。

1
第二步不需要。 - cup
5
这并没有直接回答问题,但这是我在寻找的内容,而且可以说是大多数人真正想要的解决方案。 - Robert Lugg
1
这个解决方案在查看电子表格或打印时最好,上面流行的答案在计算机上查看电子表格并且只有当用户想要查看图像时才非常好。 - Rick Henderson

16

直接打开Google文档,将以下内容作为公式粘贴进去,其中URL是指向你的图像的链接。

      =image("URL", 1)

之后,从Google文档选项中,选择下载为Excel,您就可以将图像放置在单元格中。编辑:根据评论,您不需要将图片URL保留那么长时间,只需足够长以使Excel下载它即可。然后它将嵌入到文件中。


1
你需要在某个地方托管图片以实现此解决方案。即使是谷歌云盘也无法满足此需求。 - hris.to
各位,你们不需要在从Google文档下载Excel文件后保持URL的活动状态,它会将图片嵌入到Excel本身中。 - virgula24
2
@virgula24,感谢分享这个技巧。当我将Google表格下载为Excel文件后,图像不会出现在单元格中。单元格的值仍然是=image("URL", 1),这无法被Microsoft Excel解释。如果我将其下载为PDF,则图像会按预期显示。 - Frank Liu
刚试了一下,还能用。谷歌添加了额外的选项,所以你可以使用我的建议或= image(“URL”,mode,height,width) - virgula24

9
现在我们可以直接轻松地向Excel添加图片。只需按照以下步骤操作:
  1. 进入“插入”选项卡。
  2. 点击“图片”选项(它在“插图”组中)。 image1
  3. 在“插入图片”对话框中,找到要插入到Excel单元格中的图片。 image2
  4. 点击“插入”按钮。 image3
  5. 调整图片大小,使其完美地适应单元格。 image4
  6. 将图片放置在单元格中。一个很酷的方法是先按下ALT键,然后用鼠标移动图片。当它靠近边框时,它会自动吸附并排列在单元格的边框上。

如果您有多张图片,可以一次选择并插入所有图片(如步骤4所示)。

您还可以通过选择并拖动边缘来调整图像大小。在标志或产品图像的情况下,您可能希望保持图像的纵横比。为保持纵横比不变,请使用图像的角来调整大小。


当您使用上述步骤将图像放置在单元格中时,如果您调整、筛选或隐藏单元格,则它不会与单元格粘合。如果您希望图像粘附到单元格,请将图像锁定在其所放置的单元格中。

要执行此操作,您需要按照以下附加步骤进行操作。

  1. 右键单击图片,然后选择“格式化图片”。 image5
  2. 在“格式化图片”窗格中,选择“大小和属性”,并在属性选项中选择“随单元格移动和调整大小”。 image6

现在,您可以移动、筛选或隐藏单元格,图片也会随之移动/筛选/隐藏。


注意:

此答案摘自以下链接:在Excel单元格中插入图片


2
我的建议是利用Doality.com的自动化工具,特别是Excel图片管理器。
以下VBA代码应该符合您的要求。祝好运!
此代码将把图像插入到所选单元格中,并将其缩放以适合单元格的精确宽度和高度。例如:

指令: 在Excel工作簿中添加按钮控件(单击“开发人员”选项卡,插入,Active X,命令按钮),然后双击按钮以进入VBA代码-->
Sub Button1_Click()
    Dim filePathCell As Range
    Dim imageLocationCell As Range
    Dim filePath As String

    Set filePathCell = Application.InputBox(Prompt:= _
        "Please select the cell that contains the reference path to your image file", _
            Title:="Specify File Path", Type:=8)
            
     Set imageLocationCell = Application.InputBox(Prompt:= _
        "Please select the cell where you would like your image to be inserted.", _
            Title:="Image Cell", Type:=8)

    If filePathCell Is Nothing Then
       MsgBox ("Please make a selection for file path")
       Exit Sub
    Else
      If filePathCell.Cells.Count > 1 Then
        MsgBox ("Please select only a single cell that contains the file location")
        Exit Sub
      Else
        filePath = Cells(filePathCell.Row, filePathCell.Column).Value
      End If
    End If

    If imageLocationCell Is Nothing Then
       MsgBox ("Please make a selection for image location")
       Exit Sub
    Else
      If imageLocationCell.Cells.Count > 1 Then
        MsgBox ("Please select only a single cell where you want the image to be populated")
        Exit Sub
      Else
        InsertPic filePath, imageLocationCell
        Exit Sub
      End If
    End If
End Sub

然后按照以下方式创建插入方法(可以遵循上面按钮的代码):
Private Sub InsertPic(filePath As String, ByVal insertCell As Range)
    Dim xlShapes As Shapes
    Dim xlPic As Shape
    Dim xlWorksheet As Worksheet
    
    If IsEmpty(filePath) Or Len(Dir(filePath)) = 0 Then
        MsgBox ("File Path invalid")
        Exit Sub
    End If
    
    Set xlWorksheet = ActiveSheet
    
    Set xlPic = xlWorksheet.Shapes.AddPicture(filePath, msoFalse, msoCTrue, insertCell.Left, insertCell.Top, insertCell.Width, insertCell.Height)
    xlPic.LockAspectRatio = msoCTrue
End Sub

非常有趣的解决方案,但我无法实现它。我应该在哪里/如何创建插入方法? - Herman Toothrot
我认为"Set xlPic"这一行应该像这样写: 根据https://msdn.microsoft.com/en-us/library/office/ff198302.aspx,将其设置为: Set xlPic = xlWorksheet.Shapes.AddPicture(filePath, msoFalse, msoCTrue, insertCell.left, insertCell.top, insertCell.width, insertCell.height) - mprost
在按钮的单击事件代码实现后,您可以简单地转到EndSub下面开始新的子程序。但是我必须提醒的是,打开Excel以利用VBA代码需要运行代码的任何Excel降低其安全设置。最近对公司知识产权的攻击利用了安全漏洞,这就是为什么我建议不要广泛实施宏,并付出35美元购买上述带有提供UI且不会使您的文件面临潜在风险的插件的原因。 - Daniel

-2

你可以使用Google Drive(免费,无麻烦)在不到一分钟的时间内完成它

• 批量上传所有图片至imgur.com

• 将所有图像链接复制在一起,并附加 .jpg。只有imgur让您将所有图像链接一起复制,使用右上角的图像选项卡即可。

• 使用http://TextMechanic.co在每行前缀和后缀中添加以下内容: 前缀:=image(" AND 后缀:", 1)

这样看起来就像这样=image("URL", 1)

• 复制全部

• 粘贴到Google电子表格中

• 完成!

参考资料:

http://www.labnol.org/internet/images-in-google-spreadsheet/18167/

https://support.google.com/drive/bin/answer.py?hl=en&answer=87037&from=1068225&rd=1


2
你知道textmechanic.com背后的人是谁吗? - Boris_yo
13
谷歌云端硬盘 ≠ 微软 Excel。 - ssoto
1
获取“URL”并保持其活动状态是一件很麻烦的事情。 - HBat
@Hbat 为什么那么麻烦呢?你可以使用图像托管,上传所有的图片并将其保存所需的时间。 - Developer Marius Žilėnas
1
各位,你们不需要在从Google文档下载Excel文件后保持URL的活动状态,它会将图片嵌入到Excel本身中。 - virgula24
3
对于机密数据来说,这不是一个有用的解决方案。如果我的雇主发现我将东西上传到Imgur或者Google文档,我会被开除的。 - John Y

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接