更新最终工作表而不会丢失数据

时间:2014-06-17 14:28:56

标签: javascript google-apps-script google-sheets

我在同一个电子表格中有多张工作表,当我执行生成我需要的工作表的脚本时,工作表中有数据以方便我的工作,我的问题是当我添加更多数据时,是否有任何解决方案来更新最终工作表不要丢失我之前写的内容。

我的例子:我添加数据表的每个用户,如果我执行该功能,它将在最终工作表中添加一个带有其名称的时间表,我不知道如何保留我在时间表中添加的数据用户,因为正如您所知,该功能的执行将粉碎它并为所有用户生成新的时间表

以下是生成时间表的函数的代码:

function generateTimeSheet(){
Logger.clear();

var semaine=1;
var projectSheet = ss.getSheetByName("Liste Projets");
var usersSheet = ss.getSheetByName("Utilisateurs");
var tabProjectsLibs = getProjectList();
//Récupération de la liste des utilisateurs
var tabUsers = getUsersList();
//Suppression des colonnes vides
for(i = 1; i < 13; i++){
//Nombre de jours du mois
var date = new Date(i + "/01/" + year);
var nbDays = getNbJours(date);

//Nettoyage de la feuille
var currentMonthSheet = getSheetByMonth(tabMonth[i - 1]);
var rows = currentMonthSheet.getMaxRows();
var cols = currentMonthSheet.getMaxColumns();
var currentMonthRange = currentMonthSheet.getRange(rows, cols);
currentMonthSheet.clear();
currentMonthSheet.clearFormats();

//Suppression des lignes et colonnes inutiles
try{
  currentMonthSheet.deleteColumns(2, cols - nbDays );
}catch(e){
  //Logger.log("erreur : " + e);
}
try{
  currentMonthSheet.deleteRows(2, rows - 3);
}catch(e){
  //Logger.log("erreur : " + e);
}

var numProjects = getProjectNumber();
var prjLines = 2;
//Ajout des utilisateurs
//Ajout des entêtes et des tableaux par user
for(l = 0; l < tabUsers.length; l++){  
  var firstLine = 1 + (l+1)*10 - 10 + (l + 1) * numProjects - numProjects;

  var nbTours = generateUserTimeSheet(tabUsers[l], firstLine, currentMonthSheet, nbDays, semaine);

  prjLines = 2;

  //Ajout des projets par user
  for(m = 0; m < numProjects; m++){
    addProject(tabProjectsLibs[m], firstLine + 5 + m, currentMonthSheet, prjLines, numProjects);
    prjLines++;
  }
}
semaine += nbTours;
}
}

1 个答案:

答案 0 :(得分:0)

我的猜测是删除这些清理线应该可以解决问题。

currentMonthSheet.clear();
currentMonthSheet.clearFormats();
try{
  currentMonthSheet.deleteColumns(2, cols - nbDays );
}catch(e){
  //Logger.log("erreur : " + e);
}
try{
  currentMonthSheet.deleteRows(2, rows - 3);
}catch(e){
  //Logger.log("erreur : " + e);
}