本教程探讨了在 Google 表格中插入图像的不同选项。我们还将讨论每种方法的优点和局限性。
- 使用
IMAGE
功能将图像插入到 Google 表格的任何单元格中。 - 使用 Google 表格中的
Insert
菜单将图像直接插入单元格。 - 使用
CellImageBuilder
API 通过 Google Apps 脚本以编程方式插入图像。
使用图像功能
要将图像添加到单元格,请突出显示该单元格并单击 F2 进入公式模式。接下来,输入公式=IMAGE("URL")
,其中 URL 是该图像的公共网址。
例如,以下公式将在您的 Google 表格中插入一张免费图片。
= IMAGE ( "https://i.imgur.com/gtfe7oc.png" )
默认情况下,Google 表格会缩放图像以适合所选单元格的区域,但您可以通过向IMAGE
函数添加另一个参数来轻松更改默认设置。
将模式(第二个参数)设置为 2,修改后的公式=IMAGE("URL", 2)
将拉伸图像以适应所选单元格,占据单元格的整个高度和宽度。如果图像的纵横比与单元格的纵横比不匹配,这可能会扭曲图像。
将模式值设置为 3,如=IMAGE("URL", 3)
,图像将使用图像的原始尺寸嵌入到单元格中。如果单元格太小而无法容纳图像,则图像将被裁剪。
最后,您还可以通过将模式设置为 4 来指定图像的高度和宽度(以像素为单位)。例如,公式=IMAGE("URL", 4, 100, 100)
将嵌入 100×100 像素的图像。
描述 | 图像公式示例 |
---|---|
调整图像大小以适合单元格 | =图像(“网址”,1) |
拉伸图像以适合单元格 | =图像(“网址”,2) |
使用图像的原始尺寸 | =图像(“网址”,3) |
指定图像的自定义大小 | =IMAGE(“URL”, 4, heightInPixels, widthInPixels) |
如果您遇到解析错误,您要么使用了不存在的图像,要么您可能错过了在 Image 函数公式内的图像 URL 周围添加引号。
使用 Google 表格中的插入菜单
您可以使用 Google 表格中的“插入”>“图像”菜单将计算机中的图像插入到 Google 表格中。选择Insert image over cells
选项,然后选择要插入的图像。
与将您限制在特定单元格的IMAGE
函数不同,此方法可让您将图像放置在 Google 表格内的任何位置。以这种方式放置的图像可以通过拖动蓝色手柄轻松调整大小,并且您可以为图像提供Alt text
以获得更好的可访问性。
这种方法的另一个优点是您可以为图像分配一个 Google 脚本,当有人单击该图像时将执行该脚本。例如,您可以在 Google 表格中添加一个按钮并分配一个脚本,该脚本可以立即将表格作为 PDF 文件下载到您的计算机。
通过 Apps 脚本添加图片
开发人员还可以使用setFormula()
方法或 Google Apps Script 的CellImageBuilder API以编程方式在 Google 表格中添加图像。
使用setFormula()
方法
此脚本会将来自网络的公共图像插入活动 Google 表格的第一个单元格 (A1)。由于我们没有在 Image 公式中指定模式,因此将调整图像大小以适应单元格,同时保持图像的纵横比。
const insertImageWithFormula = ( ) => { const imageUrl = 'https://i.imgur.com/gtfe7oc.png' ; const sheet = SpreadsheetApp . getActiveSheet ( ) ; const cell = sheet . getRange ( 'A1' ) ; cell . setFormula ( ` =IMAGE(" ${ imageUrl } ") ` ) ; SpreadsheetApp . flush ( ) ; } ;
使用 CellImageBuilder API
这是 Google Apps 脚本的一项相对较新的功能,可让您将图像添加到单元格中。您可以指定图像 URL,替代文本和图像将自动调整大小以适合指定的单元格。
建议使用 try-catch 块,否则如果图像 URL 无效或无法访问,该函数可能会失败。
const useCellImageBuilder = ( ) => { try { const imageUrl = 'https://i.imgur.com/gtfe7oc.png' ; const imageDescription = 'Image of a person wearing spectacles' ; const cellImage = SpreadsheetApp . newCellImage ( ) . setSourceUrl ( imageUrl ) . setAltTextTitle ( imageDescription ) . build ( ) . toBuilder ( ) ; const sheet = SpreadsheetApp . getActiveSheet ( ) ; const cell = sheet . getRange ( 'A11' ) ; cell . setValue ( cellImage ) ; } catch ( f ) { Browser . msgBox ( f . message ) ; } } ;
CellImage API 还允许您使用 base64 编码的图像字符串而不是图像 URL。
data : image / png ; charset = utf - 8 ; base64 ,
您可以使用 Google Apps 脚本将图像转换为 base64 编码字符串并将 base64 字符串传递给 CellImageBuilder API。
const useCellImageBuilderWithDataURI = ( ) => { const dataImageUri = 'data:image/png;base64,iVBORw0KGgoAAAAeCAYAA7...' ; const imageDescription = 'Image credit: wikimedia.org' ; const cellImage = SpreadsheetApp . newCellImage ( ) . setSourceUrl ( dataImageUri ) . setAltTextTitle ( imageDescription ) . build ( ) . toBuilder ( ) ; SpreadsheetApp . getActiveSheet ( ) . getRange ( 'A11' ) . setValue ( cellImage ) ; } ;
该脚本需要访问googleapis.com/auth/spreadsheets.currentonly
(仅访问当前电子表格)或googleapis.com/auth/spreadsheets
(访问您的 Google Drive 中的所有 Google 电子表格)范围才能使用任何电子表格功能。
原文: https://www.labnol.org/internet/images-in-google-spreadsheet/18167/