gpt4 book ai didi

javascript - 使用 Google 云端硬盘图像替换 Google 文档表格单元格中的占位符文本标签

转载 作者:行者123 更新时间:2023-11-28 05:54:38 24 4
gpt4 key购买 nike

我正在尝试仅使用 Google Apps 自动填充报告。顺序如下:

Google 表单 > Google 表格 > Google 文档模板

Google 表单用于输入最终报告的所有详细信息:质量得分(1、2 或 3)和一些文本。在 Google 表格中,质量得分会转换为基于文本的标签(#good#、#ok#、#bad#)。

我在 Stack Overflow 上找到了一个脚本,它可以获取 Google 文档模板并使用 Google 表格中的值填充占位符标签 (%placeholder%)。但是,我无法解决用 Google 云端硬盘中的图像/图标(绿色、橙色和红色图标)替换质量分数标签的问题。我用图标的文件名(例如 icon-green.png)替换标签,而不是图标本身。值得高兴的是,质量得分标签放置在表格单元格内。

我对 javascript 非常陌生,真的需要你的帮助!我已经在下面的代码中指出了我被困住的确切位置(接近尾声)。

// Replace this with ID of your template document.
var TEMPLATE_ID = '1AatkH57Iq3FwmsvZkCMYddjACItWS_XuO9sCsfcaMso'

// You can specify a name for the new PDF file here, or leave empty to use the
// name of the template.
var DOC_FILE_NAME = 'First GA Doc Template Try'

/**
* Eventhandler for spreadsheet opening - add a menu.
*/

function onOpen() {

SpreadsheetApp
.getUi()
.createMenu('Create Doc')
.addItem('Create Doc', 'createDoc')
.addToUi()

} // onOpen()

/**
* Take the fields from the active row in the active sheet
* and, using a Google Doc template, create a Doc with these
* fields replacing the keys in the template. The keys are identified
* by having a % either side, e.g. %Name%.
*
* @return {Object} the completed Doc file
*/

function createDoc() {

if (TEMPLATE_ID === '') {

SpreadsheetApp.getUi().alert('TEMPLATE_ID needs to be defined in code.gs')
return
}

// Set up the docs and the spreadsheet access

var copyFile = DriveApp.getFileById(TEMPLATE_ID).makeCopy(),
iconGreen = DriveApp.getFileById('0B0C0sFLzFLyWOUVSeWxQa2o2MFE'),
copyId = copyFile.getId(),
copyDoc = DocumentApp.openById(copyId),
copyBody = copyDoc.getActiveSection(),
activeSheet = SpreadsheetApp.getActiveSheet(),
numberOfColumns = activeSheet.getLastColumn(),
activeRowIndex = activeSheet.getActiveRange().getRowIndex(),
activeRow = activeSheet.getRange(activeRowIndex, 1, 1, numberOfColumns).getValues(),
headerRow = activeSheet.getRange(1, 1, 1, numberOfColumns).getValues(),
columnIndex = 0

// Replace the keys with the spreadsheet values

for (;columnIndex < headerRow[0].length; columnIndex++) {

copyBody.replaceText('%' + headerRow[0][columnIndex] + '%',
activeRow[0][columnIndex])
}

copyBody.replaceText('#good#', iconGreen) // This is where I'm stuck..

copyFile.setTrashed(false)

SpreadsheetApp.getUi().alert('New Doc created in the root of your Google Drive')

} // createDoc()

最佳答案

如果您想将图像插入 Google 文档,您需要将其作为 blob 获取并调用 insertImage 函数,如下所示:

var blob = DriveApp.getFileById(id).getBlob(); // Replace id with the ID of your icon file.

// This is inserting it into a specific cell in an existing table.
var newImage = curTable.getRow(imgTargetRow).getCell(imgTargetCol).insertImage(0, blob);

// This sets the image height and width based on my table cell sizes, but if your icon is sized exactly right you won't need to do this
var h = newImage.getHeight();
var w = newImage.getWidth();
var w = ((w > h) ? 352 : 197); // Adjust for landscape or portrait images
var h = 264;
newImage.setHeight(h);
newImage.setWidth(w);

关于javascript - 使用 Google 云端硬盘图像替换 Google 文档表格单元格中的占位符文本标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37806596/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com