繁体   English   中英

如何使用谷歌表格中的脚本将图像从一个单元格复制到另一个单元格?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM