我有一个脚本,用于从Google表格中的表单复制数据。 (是的,我知道我只能使用Google表单,但与我合作的客户端希望将其全部保存在一个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();
}
答案 0 :(得分:1)
我已经修改了您的脚本以适合数据表中的图像。
重要:取消合并表格上的图片单元格,并将背景保留为白色。脚本将要执行的操作是将值从“表单”移动到“数据”(背景颜色也会移动)
脚本将单独获取第一个值,并将其放在第一列,最后一行+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();
}