我有,我想,我在文档上工作多次受到多个列进行排序电子表格。 这是使用GUI的多步骤过程,并且似乎太费时。 我不得不以检查框的标题行,成立了第一个排序参数,然后再添一个。 唷! 它变老快。
排序表是没有问题的,但标题行也被排序! 我没有发现任何方式指定,我有一个标题行作为参数传递给sort()函数,我也不看什么办法来全局定义()一个标题行,将被排序自动发现。
代替的是,我保存的标题行,删除第一行中,排序的片,在最顶部插入新的行,重新创建标题行,并格式化标题行。 哇! 它没有花这么长时间来写,而且运作良好,但它是非常复杂的!
从用户角度来看,标题行突然出现短暂回升之前就消失了。 这不是太糟糕,但它显然是显而易见的事情是怎么回事。
所以最后我避开我的问题:我忽略承认标题行的存在,当我整理的能力吗? 或者根本排序与目前一个标题行脚本中的表也进行排序标题行,无追索权?
如果我的方法,还是一个喜欢它,需要避免包括在排序过程中的标题行,有没有地方,我可以通知谷歌Apps的团队,让他们可以考虑加入这个功能吗? 由于指定标题行的存在在一个简单的复选框GUI存在,希望它的存在或者可以在脚本中排序时被添加。
编辑
我的原代码(与文档/评论删除):
sheet.deleteRow(1);
rows.sort([<1st col>, <2nd col>]);
sheet.insertRowsBefore(1, 1);
for (var j = 0; j <= (numCols - 1); j++) {
sheet.getRange(1, (j + 1)).setValue(firstRow[j]);
}
sheet.getRange(1, 1, 1, numCols).setFontWeight("bold");
sheet.getRange(1, 1, 2, numCols).setBorder(true, true, true, true, true, true);
我已经试过在地方上面的代码感谢托马斯的建议:
sheet.setFrozenRows(1);
sheet.sort(<2nd col>);
sheet.sort(<1st col>);
sheet.setFrozenRows(0);
不幸的是,这只是通过排序列,而不是一行。 更换2 sheet.sort();
与调用rows.short();
在第一个代码块行不行。 尝试这导致我在评论报告的初始问题,其中标题行与其他数据一起排序,即使第一行的排序之前冻结。
此外,除非另一行代码被添加下面这个我在电子表格的顶部得到一个永久的“工作...”通知。 它似乎并没有什么影响,但是。
在所有情况下, var sheet = SpreadsheetApp.getActiveSheet();
, var rows = sheet.getDataRange();
和firstRow
是标题行数据阵列。