上传到另一个与特定单元格匹配的工作表

时间:2019-05-08 17:52:54

标签: google-apps-script google-sheets

我的项目需要其他帮助。最终目标是让用户连续选择单元格,然后能够使用按钮将数据上传到另一张表格中。上传时,我要匹配特定的单元格并在该行上填写特定的空白单元格。如果找不到匹配项,则需要它来创建一个新条目。

该想法是团队使用多个工作表,每个工作表具有相同的类别,但每个工作表中仅填写了某些单元格。因此,我们希望将数据全部合并在一张纸中,因此您无需查看一堆不同的纸即可获得所有数据。例如,产品ID 123456存在于主数据库中,因此,当用户上传具有该产品ID的数据时,它将在该行的适当单元格中添加诸如重量,身高等信息。如果用户上载产品ID 654321,但在主数据库中不存在该产品,则它将使用所选数据创建新行,并将其放入适当的单元格中。

因此,现在我可以将所有内容都上传到主表中,而无需检查任何产品ID。每次创建一个新条目。我需要它来检查特定的单元格数据,如果它存在于主单元中,则不要在新行中添加数据,而是将数据添加到适当单元格中的该行。

到目前为止,这非常简单:

function uploadData(){
 var css = SpreadsheetApp.getActiveSpreadsheet(); //setup current spreadsheet
 var csheet = css.getSheetByName("Sheet1") //setup current sheet
 var cdata = csheet.getActiveRange().getValues(); //get selected data values
 var sRows = csheet.getActiveRange().getLastColumn(); //get the value of the last column selected

 var mss = SpreadsheetApp.openById('1N5Orl2fQvmFmK63_y78V2k7jzBUYOjDxhixMSOCU7jI'); //open mastersheet for adding data
 var msheet = mss.getSheets()[0]; //get the sheet
 var mfindnextrow = msheet.getRange('A:A').getValues(); //get the values

 //this next code i found online, this allows me to insert new data on a new row without any data present
 var maxIndex = mfindnextrow.reduce(function(maxIndex, row, index) {
 return row[0] === "" ? maxIndex : index;
  }, 0); 

 //start looping through the row 
 cdata.forEach(function(row){
 msheet.setActiveRange(msheet.getRange(maxIndex + 2, 1, 1, sRows)).setValues(cdata); //put the data into the mastersheet
  });
};

这是床单的图片: Uploading Sheet Master Sheet

在这种情况下,只有一个项目要上传,产品代码为1,所以我需要的是在主数据库中搜索匹配的产品代码,并添加信息(如果存在),如果没有,则使用该产品代码创建一个新条目。 我现在不确定如何解决此问题。

0 个答案:

没有答案