当前位置: 首页 > 知识库问答 >
问题:

在Google工作表中创建分组

翟曦之
2023-03-14

我想通过API(appscript)在Google工作表中实现组,因为direct方法不能动态工作。我有一个名为levels(0-8)的列,然后还有两个列(其他信息)。我想写一个脚本来组成小组。它将检查具有级别的第一列,如果下一行的级别高于当前i级别,它将生成一组这些行,直到出现具有相同级别或低于i级别的行。例如,级别为:1,2,3,4,1,0,3,4。在这种情况下,它将从1开始,并将2,3,4作为一组,因为它们大于1。跳过1,0,因为它们等于或小于1,0,然后组成一组3,4。然后,它将运行2次,并执行相同的操作,为3,4创建一个组,跳过1,0,然后为3,4创建一个组。

这里是链接:https://docs.google.com/spreadsheets/d/1Ejbkl2imgEFi2mVwQ81xF5OkC97IXc4UcQIC3dxwPh4/edit?usp=sharing

这是代码:

function myFunction() {
    const rootSheet = SpreadsheetApp.getActive().getActiveSheet();
    var r = rootSheet.getLastRow();
    for (var i = 3; i <= r; i++) {
        var t = 0;
        do {
            rootSheet.getRange(i,6).shiftRowGroupDepth(1);
            t = t + 1;
        } while (SpreadsheetApp.getActiveSheet().getRange(i,1).getValue() == t)

          }
          
          }

以下是我如何根据图片手动实现分组:https://drive.google.com/file/d/1JthF2ZJXgj5--0IOnW1LCM5Pneo9XUxJ/view?usp=sharing https://drive.google.com/file/d/1JthF2ZJXgj5--0IOnW1LCM5Pneo9XUxJ/view?usp=sharing

共有1个答案

通俊发
2023-03-14
  • 在脚本中,“Sheet1”中“A”列的值似乎不用于组深度
  • 在这种情况下,我想提出以下流程。
    1. 从列“A”中检索值
    2. 使用检索到的值设置组深度
function myFunction() {
  const sheetName = "Sheet1";
  
  // 1. Retrieve values from the column "A".
  const rootSheet = SpreadsheetApp.getActive().getSheetByName(sheetName);
  const levels = rootSheet.getRange("A2:A" + rootSheet.getLastRow()).getValues();
  
  // 2. Set the group depth using the retrieved values.
  levels.forEach(([a], i) => rootSheet.getRange(i + 2, 1).shiftRowGroupDepth(a));
}

将上述脚本用于共享电子表格时,将获得以下结果。

  • 移位组深度(增量)
 类似资料:
  • addSheet([string $sheetName]); 示例 $config = [ 'path' => './filePath' ]; ​ $excel = new \Vtiful\Kernel\Excel($config); ​ // 此处会自动创建一个工作表 $fileObject = $excel->fileName("tutorial01.xlsx"); ​ $fileO

  • 我创建了一个谷歌表单模板,供教师和准专业人员收集学生的数据。表单中的某些问题被格式化为复选框(以允许多选),有些问题包含15个复选框,其中包含最常见的相关挑战。但是,由于每个孩子的挑战都是独一无二的,因此需要为每个学生制作一份表格副本,并添加、删除或修改复选框标签,但总体问题不会改变。我喜欢google forms自动绘制所有图表并创建有意义的响应摘要的方式——这正是我所需要的,但垂直轴上的图表标

  • 我无法使用 apache poi eclipse 在我创建的 java excel 中创建工作表

  • 问题内容: 我正在使用superCSV在我的代码中以csv格式写入数据。它的工作绝对很好而且非常有效,但是现在我的要求改变了。我需要在单个xls文件中写多个工作表,这是非常耗时的任务。因此,supercsv中有什么方法可以将多个工作表数据写入单个csv文件并将其发送给客户端,以便当客户端在MS- Excel中打开此csv文件时,他可以看到多个工作表,而不是由我生成具有多个工作表的excel文件,并

  • 我刚刚创建了一个新模式 我为要创建的表命名,但出现以下错误: 我搜索了错误,发现原因是我键入了保留字,如“order ”,但table2不可能是保留字,我尝试了许多不同的名称,总是得到相同的消息。列名未激活,所以我无法输入列名。

  • 我有一张有两个标签的工作表。一个选项卡我有一个值的主列表。在第二张表中,A、B和C列具有固定的下拉验证。如何设置第二张工作表,使D列中的数据验证基于A、B和C列是动态的? 我曾尝试编写一个应用程序脚本,查看列A、B和C的值,创建一个适当值的数组,然后动态创建验证,但未能找到一种逐行运行的方法。 以前有没有人做过这项工作,或者有没有人能想出一种方法来做?