17

我正在创建一个 csv 文件,其中的一列包含图像的 url(例如,www.myDomain.com/myImage.jpg)。
如何让 Excel 呈现此图像?

4

3 回答 3

26
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)

于 2011-06-10T22:53:55.527 回答
6

在 Google 表格上,您可以将IMAGE(url)方法添加到您的 CSV 文件中,它将被呈现(在 Google 表格上测试)。

这是一个例子:

=IMAGE("http://efdreams.com/data_images/dreams/lion/lion-03.jpg")
于 2017-04-30T09:04:35.250 回答
0

我有同样的问题。我的解决方案是:

  1. 将 csv 导入 Excel ,
  2. 从 excel复制表到 Google 表格
  3. 在 Google 表格中使用 =IMAGE("http://example.com/01.jpg") 列上您想要的图像。谷歌表格加载图片,
  4. 只需将所有内容复制回 Excel 即可

在 excel 中,图像将是原始大小,但总是从适当的行开始,所以只需全选并更改所有图像的宽度或高度。如果仅按行的高度更改高度,则所有内容都已正确排序和定位。

于 2021-09-03T17:07:51.240 回答