如何创建图像 QR 条码并将其从 google 电子表格保存到 google 驱动器
How to create image QR Barcode and save it to google drives from google spreadsheet
我正在 Google Sheet 的一列中生成 QR 码,其中的数据是通过 Google 表单输入的,我想将它们保存为图像。
我想在Google Sheet秒内连续生成二维码,我想将它们保存为图像。
我无法复制此函数生成的图像:
=image("https://image-charts.com/chart?chs=150x150&cht=qr&choe=UTF-8&chl="&ENCODEURL(B2))
使用 Ctrl + C 和 Ctrl+V 只能在 Google Sheet 内使用,尝试复制粘贴到 sheet 外也不起作用。检测到剪贴板不包含要粘贴到其他地方的图像。
问题不在于生成 QR,而是将其作为图像导出或保存到 google 驱动器中的文件夹中。我希望命名是生成图像(二维码)的链接,以及列和行名称以确保图像是正确的二维码图片。
我认为这可以通过使用 google apps 脚本来完成
尝试
function uploadFile() {
var sh = SpreadsheetApp.getActiveSheet()
var datas = sh.getRange('B2:B' + sh.getLastRow()).getValues()
datas.forEach(function (data) {
if (data != '') {
var imgurl = "https://image-charts.com/chart?chs=150x150&cht=qr&choe=UTF-8&chl=" + encodeURI(data)
var image = UrlFetchApp.fetch(imgurl).getBlob().getAs('image/jpeg').setName(data);
var folder = DriveApp.getFolderById('________your folder id_____');
var file = DriveApp.createFile(image);
Drive.Files.update({ "parents": [{ "id": folder.getId() }] }, file.getId());
}
})
}
启用驱动器 api 并将您的文件夹 ID 放入脚本中
或者,将复选框放在 A 列中并为此功能设置触发器
function uploadQRCode(event) {
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
if (s.getName() == "Sheet1" && r.getColumn() == 1 && r.getValue() == true) {
var imgurl = "https://image-charts.com/chart?chs=150x150&cht=qr&choe=UTF-8&chl=" + encodeURI(r.offset(0,1).getValue())
var image = UrlFetchApp.fetch(imgurl).getBlob().getAs('image/jpeg').setName(r.offset(0,1).getValue());
var folder = DriveApp.getFolderById('________your folder id_____');
var file = DriveApp.createFile(image);
Drive.Files.update({"parents": [{"id": folder.getId()}]}, file.getId());
SpreadsheetApp.getActive().toast('QRCode "'+r.offset(0,1).getValue()+'" saved !')
}
}
我正在 Google Sheet 的一列中生成 QR 码,其中的数据是通过 Google 表单输入的,我想将它们保存为图像。
我想在Google Sheet秒内连续生成二维码,我想将它们保存为图像。 我无法复制此函数生成的图像:
=image("https://image-charts.com/chart?chs=150x150&cht=qr&choe=UTF-8&chl="&ENCODEURL(B2))
使用 Ctrl + C 和 Ctrl+V 只能在 Google Sheet 内使用,尝试复制粘贴到 sheet 外也不起作用。检测到剪贴板不包含要粘贴到其他地方的图像。
问题不在于生成 QR,而是将其作为图像导出或保存到 google 驱动器中的文件夹中。我希望命名是生成图像(二维码)的链接,以及列和行名称以确保图像是正确的二维码图片。
我认为这可以通过使用 google apps 脚本来完成
尝试
function uploadFile() {
var sh = SpreadsheetApp.getActiveSheet()
var datas = sh.getRange('B2:B' + sh.getLastRow()).getValues()
datas.forEach(function (data) {
if (data != '') {
var imgurl = "https://image-charts.com/chart?chs=150x150&cht=qr&choe=UTF-8&chl=" + encodeURI(data)
var image = UrlFetchApp.fetch(imgurl).getBlob().getAs('image/jpeg').setName(data);
var folder = DriveApp.getFolderById('________your folder id_____');
var file = DriveApp.createFile(image);
Drive.Files.update({ "parents": [{ "id": folder.getId() }] }, file.getId());
}
})
}
启用驱动器 api 并将您的文件夹 ID 放入脚本中
或者,将复选框放在 A 列中并为此功能设置触发器
function uploadQRCode(event) {
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
if (s.getName() == "Sheet1" && r.getColumn() == 1 && r.getValue() == true) {
var imgurl = "https://image-charts.com/chart?chs=150x150&cht=qr&choe=UTF-8&chl=" + encodeURI(r.offset(0,1).getValue())
var image = UrlFetchApp.fetch(imgurl).getBlob().getAs('image/jpeg').setName(r.offset(0,1).getValue());
var folder = DriveApp.getFolderById('________your folder id_____');
var file = DriveApp.createFile(image);
Drive.Files.update({"parents": [{"id": folder.getId()}]}, file.getId());
SpreadsheetApp.getActive().toast('QRCode "'+r.offset(0,1).getValue()+'" saved !')
}
}