[英]How can I use a script in google sheets to copy an image from one cell to another?
我有一个脚本用于从 Google 表格中的表单复制数据。 (是的,我知道我可以只使用 Google Forms,但我正在使用的客户希望将其全部保存在一个 Google 表格中)这是我现在使用的代码,它工作得很好。 它完全符合我的要求,但是要在一个字段中放置图像。 我已经设置好了,所以用户转到“插入”,然后从那里将图像插入到单元格中。 我可以手动将图像从一张纸复制并粘贴到另一张纸上,但是当我运行脚本时,它不会复制图像,所有其他数据都会复制。 任何帮助都会很棒。 这是脚本。 图像在单元格 I3 中,正如我所说的,其他一切都按预期工作。
function submitData() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var formSS = ss.getSheetByName("Form"); //Form Sheet
var datasheet = ss.getSheetByName("Data"); //Data Sheet
//Input Values
var values = [[formSS.getRange("E3").getValue(),
formSS.getRange("I3").getValue(),
formSS.getRange("E6").getValue(),
formSS.getRange("I6").getValue(),
formSS.getRange("E10").getValue(),
formSS.getRange("I10").getValue(),
formSS.getRange("E15").getValue(),
formSS.getRange("I15").getValue(),
formSS.getRange("E19").getValue(),
formSS.getRange("I19").getValue(),
formSS.getRange("E22").getValue(),
formSS.getRange("I22").getValue(),
formSS.getRange("E25").getValue(),
formSS.getRange("I25").getValue(),
formSS.getRange("E28").getValue()]];
datasheet.getRange(datasheet.getLastRow()+1, 1, 1, 15).setValues(values);
formSS.getRange('E3:E29').clearContent();
formSS.getRange('I3:I29').clearContent();
}
我已经修改了您的脚本以适合数据表中的图像。
重要提示:取消合并表单工作表上的图片单元格并将背景保留为白色。 脚本将做的是将值从表单移动到数据(背景颜色也会移动)
该脚本将单独获取第一个值并将其放在第一列,最后一行 +1 中。
现在最后一行是必需的(不是最后一个 +1),然后脚本移动图像并插入其他值,就像您之前所做的那样。
剧本:
function submitData() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var formSS = ss.getSheetByName("Form"); //Form Sheet
var datasheet = ss.getSheetByName("Data"); //Data Sheet
//Input Values
var values = [[formSS.getRange("E6").getValue(),
formSS.getRange("I6").getValue(),
formSS.getRange("E10").getValue(),
formSS.getRange("I10").getValue(),
formSS.getRange("E15").getValue(),
formSS.getRange("I15").getValue(),
formSS.getRange("E19").getValue(),
formSS.getRange("I19").getValue(),
formSS.getRange("E22").getValue(),
formSS.getRange("I22").getValue(),
formSS.getRange("E25").getValue(),
formSS.getRange("I25").getValue(),
formSS.getRange("E28").getValue()]];
// Get the first value and insert into the first column
var firstColumn = formSS.getRange("E3").getValue()
datasheet.getRange(datasheet.getLastRow()+1, 1,).setValue(firstColumn);
// Get the image and intert into the second column of the same row
var image = formSS.getRange("I3").moveTo(datasheet.getRange(datasheet.getLastRow(), 2));
// Get all the other values and insert them into the other columns of the same row
datasheet.getRange(datasheet.getLastRow(), 3, 1, 13).setValues(values);
formSS.getRange('E3:E29').clearContent();
formSS.getRange('I3:I29').clearContent();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.