使用谷歌应用脚​​本在谷歌电子表格中插入一个单元格

时间:2014-05-05 08:17:15

标签: google-apps-script google-sheets

我正在制作Google电子表格。我想知道是否有办法使用apps脚本在电子表格中插入单元格。

示例:假设从A2到Y2有一些数据。

我想插入带有一些数据的单元格A2。所以现在将有从A2到Z2的数据。

7 个答案:

答案 0 :(得分:4)

我得到了答案,没有办法插入单元格。

答案 1 :(得分:1)

没有直接插入单个单元格的功能,但我们可以执行movewrite

  • 将范围A2:Y2移动到B2:Z2。
  • 将新值写入A2。

例如:

function insertCell() {
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.getRange("A2:Y2").moveTo(sheet.getRange("B2"));
  sheet.getRange("A2").setValue("New");
}

答案 2 :(得分:1)

这会将所有内容从A2右移1列,将A2保留为空并准备插入新数据。

请注意,这也会跨A2格式复制。 因此,请确保在A1而非A2上放置任何边框等。

function addNewCell() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  ss.getRange("A2").insertCells(SpreadsheetApp.Dimension.COLUMNS);
}

如果您希望在多个单元格之间移动A2,请使用一个范围

ss.getRange("A2:C2").insertCells(SpreadsheetApp.Dimension.COLUMNS);

显然,此特定代码会将它们移动3个

答案 3 :(得分:0)

我认为没有办法向细胞左/右插入细胞。如果您的单元格和地址不是动态的,则可以执行以下操作

  • 获取A2-Y2范围内的内容并输入数组
  • 在索引0处的数组上添加新的所需值,我的意思是数组的第一个元素
  • 在第2行插入新数组值。我的意思是A2-Z2。
//Get A2-Y2 in a cellFeed

    URL cellFeedUrl1 = new URI(worksheets.get(WSID).getCellFeedUrl() +"?min-row=2&max-row=2&min-col=1&max-col=1").toURL();
    CellFeed cellFeed1 = googleservice.getFeed(cellFeedUrl1, CellFeed.class);

//store in an Array

       for (CellEntry cell : cellFeed1.getEntries()) 
    {   Array_A2Y2.add(cell.getPlainTextContent());     }

//Add your desired cell Value on the first of that array

//Insert the Array items on the your required row

答案 4 :(得分:-1)

根据我使用谷歌电子表格的经验,您只能插入整行或列。 这是通过右键单击行/列并选择添加行/列然后您可以选择在下方/右侧或上方/左侧添加它来完成的。

答案 5 :(得分:-2)

如果你想在他的电子表格中写,你需要使用Class Sheet,GetRange函数。

例如:

 mysheet.getRange(1,5,nbrows+BNrows-1,5).setValues(myArray); // my Array concern a column

答案 6 :(得分:-2)

我有兴趣将数据块向下移动以在表格的顶部创建一个新的(空)行。知道我的顶行中的数据在单元格A7中盯着我表格中的最后一列是H列,我只将表格列向下移动,而不是我的电子表格的其余部分。

 function addNewRow() {
     var sheet = SpreadsheetApp.getActiveSpreadsheet();
     sheet.getRange("A7:H1000").moveTo(sheet.getRange("A8"));  
 }