使用来自 google sheet 的二维码生成 google 文档

Generate google docs with QR code from google sheet

我有一个 Google Sheet 有很多单元格,其中一个是 QR 码(QR 码包含姓名和员工 ID)。 Google 文档文件是根据作品sheet 中的值通过替换占位符文本生成的。此 Google 文档将用作数字通行证。

如何将 QR 码图像放置在 Google 文档中,生成自 Google Sheets 数据?

例如。在 sheet 中,我在 A、B 和 D 列中存储了 Employee IDNameQR Code
我使用 replaceText 替换 Document:

中的占位符文本
      copyBody.replaceText('EmployeeID', row[i][0]);
      copyBody.replaceText('firstName', row[i][1]);
      copyBody.replaceText('qrCode', row[i][3]); etc.

二维码存储在sheet中作为公式结果:
=IMAGE("https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl=" & C2)

当我 运行 我的脚本时,模板文档中的 EmployeeIDName 字段被替换为所需的值,但 qrCode 字段中没有任何内容。

我不认为在您的电子表格单元格上生成的 QR 码被视为文本,因此该函数将替换 'qrCode' 为空。您应该使用上面的代码:

var doc = DocumentApp.openById('DocId')
var ss = SpreadsheetApp.openById('SsId');
var qrCode = ss.getRange('qrCode').getValue(); // Get the QR code value from te Spreadsheet
var url = "https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl=" + qrCode 
var resp = UrlFetchApp.fetch(url); // Get the image of QR code
var barcode = doc.getChild(0).asParagraph().appendInlineImage(resp.getBlob()); // Value of child depend of where you want your QR code. 

有关appendInlineImage(blob) method and getChild(name) method

的更多信息

您可以使用以下公式在 google 张内生成 QR 图像:

=image("https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl="&A2)

在单元格 B2 中设置此公式。 将您的 URL 或其他任何内容放入单元格 A2

二维码会自动出现在单元格B2中 您可能需要调整单元格大小

IMAGE =IMAGE(URL), 即=IMAGE("http://....") 但在你的公式中:

=IMAGE("https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl="&C2)

哪个“&C2”放在了“”的外面

在使用图像功能之前,您必须将图像 URL 拼接在一起。 我认为你需要先加入图像URL:

 =JOIN("","https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl=&",C2)

`

或者,您可以结合这两个功能:

=IMAGE(JOIN("","https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl=&",C2))

为那些仍在寻找如何做到这一点的人提供的更新(2018 年 8 月)...

Google 已弃用 QR 图表 API。我能够找到这个基于 API 的 QR 生成器:http://goqr.me/api/

使用以下语法对我来说效果很好:

=image("https://api.qrserver.com/v1/create-qr-code/?size=160x160"&[YOUR_DATA],3)

[YOUR DATA] 需要 "URL encoded" 才能工作,如果它不止一个数字或单词。这可以通过 Google Sheets ENCODEURL 函数来完成。这是我用来显示 QR 码的整个公式,该 QR 码代表两个串联的单元格,它们之间有一个连字符:

=IMAGE("https://api.qrserver.com/v1/create-qr-code/?size=160x160&data="&ENCODEURL(G1&" - "&G2),3)