gpt4 book ai didi

google-apps-script - 从 Google 文档中的两个不同表中删除行很困难

转载 作者:行者123 更新时间:2023-12-04 17:15:49 24 4
gpt4 key购买 nike

我希望你们中有人愿意帮助我。很快就会很明显地发现,我对 Google Apps 脚本(和循环,就此而言,但我正在努力学习)还很陌生。我希望我的代码不会让您畏缩。

基本上在示例文档中
( https://docs.google.com/document/d/1VPua9T1d9qQFMCuvTlIqnvmhhMoplimZar4oAemAGPM/edit?usp=sharing ),我想删除所有包含工作人员 Derek 的行。从日志中可以看出,第 17 行和第 18 行(在标题为“本周日程安排”的第二个表中)和第 25-29 行(在以议程/注释开头的第四个表中)。

如果我单独运行每个循环,下面的代码将运行良好并删除我想要的行(抛出错误 re:我刚刚忽略的子索引除外)。

当我尝试同时运行它们时,我接近了,但在第一个表中,其中一行(在顶表中)没有删除。我试过先运行第二个循环,这让情况变得更糟。如果您能提供任何帮助,我们将不胜感激。

function DeleteRows() {
var doc = DocumentApp.getActiveDocument()
var body = doc.getBody();
var tables = body.getTables();
var numRows = tables[1].getNumRows();
var numRows2 = tables[3].getNumRows();


var row;
var val;

for(row = 0; row<numRows-1; row++) {
val = tables[1].getCell(row, 1).getText

tables[1].getRow(16).removeFromParent();

var row2;
var val2;

for(row2 = 0; row2<numRows2-1; row2++) {
val2 = tables[3].getCell(row2, 1).getText();
tables[3].getRow(24).removeFromParent();



Logger.log(numRows);
}
}
}

最佳答案

基本上,您可以通过这种方式删除带有“Derek”的所有表格行:

function DeleteRows() {
var body = DocumentApp.getActiveDocument().getBody();
var found_element = body.findText('Derek');
while (found_element != null) {
found_element.getElement().getParent().getParent().getParent().removeFromParent();
found_element = body.findText('Derek', found_element)
}
}

它只会找到每个“Derek”取其父父的父父 { table row : { table cell : { paragraph: { text } } } } 并将其删除。

对于您的情况,它只能部分工作,因为您的表格已合并单元格。如果您想找到 'Derek's rows 之后的所有空行并将它们也删除,则需要更复杂的解决方案。

但是我没看懂你的剧本。为什么需要嵌套循环?如果您在代码中找到“Derek”的任何条件?

更新

要从表 2 中删除第 17-18 行和从表 4 中删除第 25-29 行,您可以使用此函数:

function DeleteRows2() {
var tables = DocumentApp.getActiveDocument().getBody().getTables();
[17,18].reverse().forEach(n => tables[1].getRow(n-1).removeFromParent());
[25,26,27,28,29].reverse().forEach(n => tables[3].getRow(n-1).removeFromParent());
}

关于google-apps-script - 从 Google 文档中的两个不同表中删除行很困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68762494/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com