我有一个谷歌工作表与一些产品和SKU的列表
数据如下:
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"。因此数据将如下所示:
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 我尝试了下面的应用程序脚本,但是不能只在重复的行中更改该值。如果我更改了任何内容,它将在所有行中更改。
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);
}发布于 2021-08-20 19:27:59
我想这样就行了。
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);
}https://stackoverflow.com/questions/68867025
复制相似问题