首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >复制Google Sheet中的每一行,复制数据集中的第一列为空

复制Google Sheet中的每一行,复制数据集中的第一列为空
EN

Stack Overflow用户
提问于 2021-08-20 19:05:33
回答 2查看 43关注 0票数 0

我有一个谷歌工作表与一些产品和SKU的列表

数据如下:

代码语言:javascript
运行
复制
title  |    sku    |  image  | category |  price   
prod1  |  p1-type  |  1.jpg  | cat1     |  1 USD   
prod2  |  p2-type  |  2.jpg  | cat2     |  2 USD   
prod3  |  p3-type  |  3.jpg  | cat2     |  5 USD   

我希望其中的每一行都是重复的,它的第一列设置为null,并且SKU值要附加一个"_2"。因此数据将如下所示:

代码语言:javascript
运行
复制
title  |    sku    |  image  | category |  price   
prod1  |  p1-type  |  1.jpg  | cat1     |  1 USD 
       |  p1-type_2|  1.jpg  | cat1     |  1 USD   
prod2  |  p2-type  |  2.jpg  | cat2     |  2 USD   
       |  p2-type_2|  2.jpg  | cat2     |  2 USD   
prod3  |  p3-type  |  3.jpg  | cat2     |  5 USD
       |  p3-type_2|  3.jpg  | cat2     |  5 USD   

我尝试了下面的应用程序脚本,但是不能只在重复的行中更改该值。如果我更改了任何内容,它将在所有行中更改。

代码语言:javascript
运行
复制
function autoDup() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var newData = [];
  
  for(var n in data){

    if(n == 0){
      newData.push(data[n]); //Skip first row
    } else {
      
      newData.push(data[n]);     
      //set data in first column to null
      data[n][0] = "";  //This however set the value in prev row to empty aswell.
      newData.push(data[n]);      
    }
  }

 sheet.getRange(1,1,newData.length,newData[0].length).setValues(newerData);
}
EN

Stack Overflow用户

发布于 2021-08-20 19:27:59

我想这样就行了。

代码语言:javascript
运行
复制
function fixRange(){
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const wSh = ss.getActiveSheet();
  var oldValues = wSh.getRange("A2:E" + wSh.getLastRow()).getValues();
  var newValues = [];
  
  for(var i=0;i<oldValues.length;i++){
    if(oldValues[i][0]!=''){
    newValues.push(oldValues[i]);
    newValues.push(['',oldValues[i][1] + '_2',oldValues[i][2],oldValues[i][3],oldValues[i][4]]);
    }
  
  }
  wSh.getRange(2,1,newValues.length,5).setValues(newValues);
}
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68867025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档