gpt4 book ai didi

javascript - 合并空单元格的 Extendscript 不适用于一页上的多个表格

转载 作者:行者123 更新时间:2023-12-03 12:43:26 24 4
gpt4 key购买 nike

我需要一个脚本,将 InDesign 文档中表格中的任何空单元格与其正上方的单元格合并。我想我已经通过这个脚本弄清楚了:

var myDoc = app.activeDocument;

myPage = myDoc.pages;

for (var p=0; myPage.length>p; p++){

try{

var myTable = myPage[p].textFrames.everyItem().tables.everyItem();

if (myTable.constructor.name == 'Table'){

for (var t = myTable.cells.length - 1; t >= 0; t--)
{

if (myTable.cells[t].contents==""){
var w = myTable.columns.length;
myTable.cells[t-w].merge(myTable.cells[t]);

}

}

}

}

catch(e){}

}

效果很好,直到我在同一页面上有多个表格的文档上尝试它,在这种情况下,它对该页面上的任何表格都没有任何作用,这是不幸的,因为我需要这个脚本的表格位于同一页面上。

最佳答案

everyItem() 函数返回项目的集合。你还需要循环它们。

var myDoc = app.activeDocument;
// loop pages
for (var p = 0; myDoc.pages.length > p; p++) {
var onepage = myDoc.pages[p];
// loop textframes
for (var tf = 0; tf < onepage.textFrames.length; tf++) {
var onetf = onepage.textFrames[tf];
// loop tables
for (var tb = 0; tb < onetf.tables.length; tb++) {
var onetable = onetf.tables[tb];
// loop cells
for (var t = onetable.cells.length - 1; t >= 0; t--) {
if (onetable.cells[t].contents === "") {
var w = onetable.columns.length;
onetable.cells[t - w].merge(onetable.cells[t]);
}
}
}
}
}

关于javascript - 合并空单元格的 Extendscript 不适用于一页上的多个表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23440091/

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