如何在Excel中显示图片,给定图片的URL

17

我正在创建一个包含图片 url(例如 www.myDomain.com/myImage.jpg)的 csv 文件。
我该如何让 Excel 渲染这张图片?

3个回答

27
Dim url_column As Range
Dim image_column As Range

Set url_column = Worksheets(1).UsedRange.Columns("A")
Set image_column = Worksheets(1).UsedRange.Columns("B")

Dim i As Long
For i = 1 To url_column.Cells.Count

  With image_column.Worksheet.Pictures.Insert(url_column.Cells(i).Value)
    .Left = image_column.Cells(i).Left
    .Top = image_column.Cells(i).Top
    image_column.Cells(i).EntireRow.RowHeight = .Height
  End With

Next

由于Excel的行为在多年间 显然发生了变化,因此您可能需要明确指定更多参数来调用Insert

对于来到这里的人们。不同版本的Excel以不同的方式处理此请求,Excel 2007将图片作为对象插入,即将其嵌入工作簿中。Excel 2010将其作为链接插入,如果您计划将其发送给任何人,则会遇到麻烦。您需要更改插入以指定它是嵌入的:Insert(Filename:= <path>, LinkToFile:= False, SaveWithDocument:= True)


3
这个问题是在问“渲染图片”还是“将图片插入单元格”?我需要一个解决方案,能够在Excel中根据其他单元格中的URL呈现图片,但不希望这些图片被嵌入电子表格并在保存时增加文件大小。我认为这不是解决方案,对吗? - Jason
@Jason 是的,那不是解决方案。但你可以在例如 Workbook_BeforeSave 中删除插入的图片。 - GSerg
1
我真的不明白这个解决方案是如何工作/使用的! - Stéphane
@Stéphane 在模块或工作表中创建一个sub。随意命名它。将代码粘贴在SubEnd Sub之间。如果需要,调整Worksheets(1)部分以适合您的需求。运行。 - GSerg
1
@avalanche1 可能是因为 Excel 发送了一些有趣的用户代理,比如 IE6.0。 - GSerg
显示剩余3条评论

7
在Google表格上,您可以在CSV文件中添加 IMAGE(url) 方法,它将被渲染(已在Google Sheets上测试)。
以下是示例:
=IMAGE("http://efdreams.com/data_images/dreams/lion/lion-03.jpg")

15
可以,但问题是关于Excel的。在Google表格中可以,但需要参考Excel。 - Benjamin James

0

我曾经遇到过同样的问题,我的解决方案是:

  1. 将CSV导入Excel
  2. 从Excel中复制表格到Google Sheets
  3. 在Google Sheets中使用=IMAGE("http://example.com/01.jpg")在你想要插入图片的列上。Google Sheets会加载这些图片,
  4. 最后将所有内容复制回Excel

在Excel中,图片将保持原始大小,但始终从适当的行开始,因此只需选择所有内容并更改所有图片的宽度或高度即可。如果仅按行高更改高度,则可以使所有内容都有序且位置正确。


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