在 InDesign 脚本中调整合并单元格

Adapting merge cells in InDesign script

我在SO上找到了这个脚本,和我需要的很接近。但不是将单元格与上面的单元格合并,而是需要它与任何空单元格左侧的单元格合并。

我尝试用它进行试验,并设法让它水平合并一次,但它将三个非空的单元格合并为一个单元格。

如有任何帮助将不胜感激

谢谢

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){}

}

我找到了解决方案

 var i, j, cells;
// Get all the rows in the document
var rows = app.documents[0].stories.everyItem().tables.everyItem().rows.everyItem().getElements();
for (i = 0; i < rows.length; i++) {
    // Get all the cells in a row
    cells = rows[i].cells.everyItem().getElements();
    for (j = cells.length-1; j >= 1; j--) {
        if (cells[j].contents == '') {
            cells[j-1].merge (cells[j]);
        }
    }
}