我有一个系统导出的谷歌表。我想根据名称删除某些列。这些列没有并排排列。
要一起删除所有内容,我想获取range,其中range变量具有特定的头名称。
我遇到了一个问题,即如何定义一个范围,然后将其删除。
编辑:我不能使用标准的deleteColumn方法,因为列的顺序每天都不同。
function deleteColumns() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('data'), true);
spreadsheet.getRange('1:1').activate();
var header = spreadsheet.getRange('1:1');
var deleteValues = (header.getValues());
var counter = 1;
for (i=0; i<header.length; i++) {
if
(
( deleteValues[i] == 'example A') ||
( deleteValues[i] == 'example B') ||
( deleteValues[i] == 'example C') ||
( deleteValues[i] == 'example D') ||
( deleteValues[i] == 'example E')
)
{
spreadsheet.deleteColumn(counter); }
else {
var counter = counter + 1;
}
}}
可以使用方法deleteColumn(column\u position)删除列:
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
// Columns start at "1" - this deletes the first column
sheet.deleteColumn(1);
https://developers.google.com/apps-script/reference/spreadsheet/sheet#deletecolumncolumnposition
在您的情况下,一种方法应该是获取有列名称的行范围,以及for循环和计数器(从1开始,每次检查增加1)。因此,如果单元格的值与您定义的值相同,则列的索引就是计数器的值。即:
counter = 1;
for (i=0; i<range.length; i++) {
if (deleteValues[i] == 'exampleA' ||
deleteValues[i] == 'exampleB' ||
deleteValues[i] == 'exampleC' ||
deleteValues[i] == 'exampleD') {
sheet.deleteColumn(counter);
} else {
counter = counter + 1;
}
}
编辑:除了一些概念问题之外,您的代码还必须在其他地方进行修改才能工作。这是工作代码:
function deleteColumns() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Foglio2'), true);
spreadsheet.getRange('1:1').activate();
var header = spreadsheet.getRange('1:1');
var deleteValues = (header.getValues());
var counter = 1;
for (i=0; i<deleteValues[0].length; i++) {
if
(
deleteValues[0][i] == 'exampleA' ||
deleteValues[0][i] == 'exampleB' ||
deleteValues[0][i] == 'exampleC' ||
deleteValues[0][i] == 'exampleD'
)
{
spreadsheet.deleteColumn(counter); }
else {
counter = counter + 1;
}
}
}
问题内容: 我使用以下方式列出了重复项: 现在,如何删除除一条消息以外的所有消息(我正在尝试删除重复项,以便可以在上应用唯一索引)。 问题答案: 使用和分配行号,以便删除重复对中除一个以外的所有行。
问题内容: 在我们的系统中,我们每小时从外部数据库导入一次。由于导入脚本中的错误,现在有一些重复的记录。 如果任何记录具有和,则视为重复。 我可以运行什么代码来查找和删除这些重复项? 我在玩这个: 它似乎返回了一些重复项,但是我不确定如何从那里删除? 有任何想法吗? 问题答案: 您可以尝试以下方法: 还是纯sql:
我有一个这样的数据帧(): 我想基本上删除重复记录,以便字段是唯一的。我不关心被丢弃的记录,在这种情况下,地址已经被删除,所以唯一通过的是拼写错误。我想要以下结果的数据框: 在R中,基本上是这样做的: 但是我需要一种方法在熊猫身上做到这一点。
我有以下数据帧: 我需要删除等于的行。最有效的方法是什么?
我有一个数据集,我想根据该行的2或列值从数据框中删除行。例如-我有关于美国所有电视节目的数据帧,我需要根据电视节目的季节和剧集删除电视节目的特定行。就像我需要删除高谭市电视台的行,但只删除包含第四季和第十集的行。 如果我能在这方面得到帮助,我将不胜感激。
我有这样一个数据帧: 我如何摆脱第四行,因为它有sq_resid的最大值?注意:最大值将从一个数据集更改到另一个数据集,所以仅仅删除第4行是不够的。 我已经尝试了一些方法,比如我可以删除像下面这样留下数据帧的最大值,但是无法删除整行。