使用Google Apps Script在Google电子表格中插入单元格

8
我正在使用Google电子表格,想知道是否有一种用Apps脚本在电子表格中插入单元格的方法。
例如:假设从A2到Y2有一些数据。我想要在A2处插入一些数据,这样现在就会有从A2到Z2的数据。
7个回答

7

这将把从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
我已经得到了答案,无法插入单元格。

2

没有直接插入单个单元格的函数,但我们可以进行移动操作写入操作:

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

例如:

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

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

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

谢谢您的回复,但我正在使用脚本查找单元格。 - Suneel Kumar

-2

我想把一块数据下移,以在表格顶部创建一个新的(空)行。我知道我的顶行数据从单元格A7开始,表格的最后一列是H列,因此我只需要将表格列向下移动,而不影响电子表格中的其他内容。

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

-2
如果你想在电子表格中写入内容,你需要使用 Sheet 类和 GetRange 函数。
例如:
 mysheet.getRange(1,5,nbrows+BNrows-1,5).setValues(myArray); // my Array concern a column

请解释你的答案。 - Suneel Kumar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接