- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在下面使用这个脚本将来自 URL 的图像插入到 Google 表格中的指定单元格,但是,它不适用于 Google Drive 中包含的图像 URL。
//If any graphic is a URL, insert that URL into the corresponding cell in the Briefing tab.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var source = ss.getSheetByName("main_gen").getRange("ImageRange").getValues();
var dstSheet = ss.getSheetByName("Briefing");
for (var num = 0; num < source.length; num ++) {
if (/https?:\/\//.test(source[num][0])) { //Check to ensure a URL has been entered.
var graphicformula = '=IMAGE("' + source[num][0] + '",1)';
dstSheet.getRange(graphics_placements[num]).setFormula(graphicformula);
}
}
用户在一个选项卡上的预定义数量的单元格中输入图像的 URL。根据他们选择的顺序(可以有 1 到 5 张图像),图像被插入到另一个选项卡上的指定单元格中。我如何重写上面的代码以同时考虑这样的 URL ( https://google.com/image.png ) 和这样的 ( https://drive.google.com/open?id=12Au6IQE9l9X_hzM5n87Fs9gajJ )?
谢谢!
最佳答案
IMAGE()
的公式将 Google 云端硬盘中的图像文件放入电子表格。
https://google.com/image.png
和 https://drive.google.com/open?id=###
。https://google.com/image.png
是外部链接。https://drive.google.com/open?id=###
是您 Google 云端硬盘中的链接。如果我的理解是正确的,这个答案怎么样?请将此视为几个可能的答案之一。
不幸的是,Google 云端硬盘中的图像文件无法使用 IMAGE()
直接放入电子表格。在这种情况下,图像文件需要公开共享。因此,在这个答案中,文件被公开共享并放入电子表格。
当您的脚本修改时,请修改如下。
从:for (var num = 0; num < source.length; num ++) {
if (/https?:\/\//.test(source[num][0])) { //Check to ensure a URL has been entered.
var graphicformula = '=IMAGE("' + source[num][0] + '",1)';
dstSheet.getRange(graphics_placements[num]).setFormula(graphicformula);
}
}
至:
for (var num = 0; num < source.length; num ++) {
if (/https?:\/\//.test(source[num][0])) { //Check to ensure a URL has been entered.
var res = source[num][0].match(/drive\.google\.com\/open\?id=(\w.+)|drive\.google\.com\/file\/d\/(\w.+)\//);
if (res && res.length > 0) {
var id = res[1] || res[2];
var file = DriveApp.getFileById(id);
if (file.getOwner().getEmail() != Session.getActiveUser().getEmail()) {
file = file.makeCopy(DriveApp.getRootFolder());
}
file.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW);
source[num][0] = "https://drive.google.com/uc?export=download&id=" + id;
}
var graphicformula = '=IMAGE("' + source[num][0] + '",1)';
dstSheet.getRange(dstSheet.getLastRow() + 1, 1).setFormula(graphicformula);
}
}
DriveApp.getRootFolder()
。https://drive.google.com/open?id=###
模式之外的 URL,请显示示例 URL。请按如下方式修改脚本中的 for 循环。
var scale = 0.5; // In this case, the imported image is reduces with 50 % from the original size.
var n = 0;
var cellWidth = 0;
for (var num = 0; num < source.length; num ++) {
if (/https?:\/\//.test(source[num][0])) { //Check to ensure a URL has been entered.
var res = source[num][0].match(/drive\.google\.com\/open\?id=(\w.+)|drive\.google\.com\/file\/d\/(\w.+)\//);
var blob = res && res.length > 0 ? DriveApp.getFileById(res[1] || res[2]).getBlob() : UrlFetchApp.fetch(source[num][0]).getBlob();
var lastRow = dstSheet.getLastRow() + 1 + n++;
var image = dstSheet.insertImage(blob, 1, lastRow);
var imageWidth = image.getWidth() * scale;
var imageHeight = image.getHeight() * scale;
cellWidth = cellWidth > imageWidth ? cellWidth : imageWidth;
image.setWidth(imageWidth);
image.setHeight(imageHeight);
dstSheet.setRowHeight(lastRow, imageHeight);
}
}
dstSheet.setColumnWidth(1, cellWidth);
dstSheet.setRowHeight(lastRow, imageHeight)
和 dstSheet.setColumnWidth(1, cellWidth)
更改单元格大小。关于google-apps-script - 使用 Google Apps 脚本将来自 Google 云端硬盘或 URL 的图像插入 Google 表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59996906/
是否可以进行 Puppet 设置,在其中使用 JClouds 在云上实例化新虚拟机,然后通过 Puppet 定义和实现其配置(软件堆栈)? 或者 Puppet 的本质是否存在某些固有的因素阻碍其在 A
作者:京东零售 郑炳懿 前言: 当今世界,云计算技术在快速发展,不断为我们带来新的应用场景和解决方案。作为一名前端开发者,了解云技术并掌握如何在前端中应用它们是必不可少的。
我在我们的 iOS 通用应用程序中使用核心数据,并希望用户能够将其数据备份到我们的服务器。因此他们可以使用另一台设备登录并将该数据拉取到该设备。有人对此有什么建议吗?我想在服务器上分析数据,以便与我们
我在 Xcode 的验证过程中收到此错误,这让我抓狂。我花了几个小时试图修复它,但找不到解决方案。 我们拥有正确的分发证书、供应配置文件以及我能想到的与此相关的一切。我已经撤销并重建了我所有的项目,但
今天我对一个项目有了一个非常好的想法,不幸的是存在信息/经验障碍。 我基本上想要的是在云中运行游戏并将图像流式传输给用户。 我知道 ec2 可以选择使用 GPU,但它可能有错误的定价模型来满足我的需求
我是 Cloud Firestore 的新手(我们不都是这样吗?)并且我已经使用 Node.js 中的管理 SDK 向我的数据库添加了一些数据。它显示在控制台上,但在文档下显示“此文档不存在,它不会出
我有一个托管在 s3 存储桶上的静态 html 网站。我已经使用 let's encrypt 生成了一个免费的 ssl 证书,并将其导入到 ACM 中。 certbot --manual --serv
我一直在阅读 Cloudfront 文档,我想确保我的计划是合理的。我有一个后端 API,结构为 EC2 HTTP 服务器,内容经常更新(每秒几次更改)。这是我的理解: 我不应该将此 HTTP 服务器
我是一名优秀的程序员,十分优秀!