Javascript 合并空单元格的Extendscript不';I don’我不能在一页上处理多个表
我需要一个脚本,可以将InDesign文档中表中的任何空单元格与其正上方的单元格合并。我想我已经弄明白了,用这个脚本:Javascript 合并空单元格的Extendscript不';I don’我不能在一页上处理多个表,javascript,merge,adobe-indesign,cells,extendscript,Javascript,Merge,Adobe Indesign,Cells,Extendscript,我需要一个脚本,可以将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.con
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]);
}
}
}
}
}
var myDoc=app.activeDocument;
//循环页
对于(var p=0;myDoc.pages.length>p;p++){
var onepage=myDoc.pages[p];
//循环文本框
对于(var tf=0;tf=0;t--){
if(onetable.cells[t].contents==“”){
var w=一个表.columns.length;
onetable.cells[t-w].merge(onetable.cells[t]);
}
}
}
}
}