我在同一个电子表格中有多张工作表,当我执行生成我需要的工作表的脚本时,工作表中有数据以方便我的工作,我的问题是当我添加更多数据时,是否有任何解决方案来更新最终工作表不要丢失我之前写的内容。
我的例子:我添加数据表的每个用户,如果我执行该功能,它将在最终工作表中添加一个带有其名称的时间表,我不知道如何保留我在时间表中添加的数据用户,因为正如您所知,该功能的执行将粉碎它并为所有用户生成新的时间表
以下是生成时间表的函数的代码:
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;
}
}
答案 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);
}