Skip to main content
karthikS
Inspiring
August 31, 2016
Question

Duplicate table row

  • August 31, 2016
  • 2 replies
  • 1667 views

Dear Friend,

I need your help!

How to duplicate in the table row? I was try and search to forum, but i have not got single solution. Also, i have place my code and screenshot below:

please suggest me friends.

 

  var curDoc = app.documents[0]; 

  var allTables = curDoc.stories.everyItem().tables.everyItem().getElements(); 

  var nTables = allTables.length; 

  var testID = 0;

  for (var t = 0; t < nTables; t++) { 

    var curTable = allTables

    var allRows = curTable.rows; 

    var nRows   = allRows.length; 

     

    for (var r = 0; r < nRows; r++) { 

      var curRow = allRows

      var iP = curRow.cells[0].insertionPoints[0]; 

      var parTFrameID = iP.parentTextFrames[0].id; 

 

      if (testID != 0 && testID != parTFrameID) { 

        var appliedStyle = allRows[r-1].cells.everyItem().appliedCellStyle = "TBLR";

        var addRow = allRows.add(LocationOptions.BEFORE, allRows[r+0]);

//************************I have missing some duplicate code here******************************

//************************Help Need******************************       

       

      } 

    testID = parTFrameID; 

    } 

  } 

screenshot here:

Thanks in Advance

KS

This topic has been closed for replies.

2 replies

Kai Rübsamen
Participating Frequently
August 31, 2016

First of all, don’t call it 'my code' if it is not yours … ;-)

Second:

You try to add rows to rows, but in the UI you would add rows to the current table.

main();

function main() {

var curDoc = app.documents[0];

var allTables = curDoc.stories.everyItem().tables.everyItem().getElements();

var nTables = allTables.length;

var testID = 0;

for (var t = 0; t < nTables; t++) {

  var curTable = allTables;

  var allRows = curTable.rows;

  var nRows   = allRows.length;

  var subheaderContents = allRows[1].contents;

 

  for (var r = 0; r < nRows; r++) {

    var curRow = allRows;

    var iP = curRow.cells[0].insertionPoints[0];

    var parTFrameID = iP.parentTextFrames[0].id;

    if (testID != 0 && testID != parTFrameID) {

      var c = allRows[r-1].cells.everyItem();

      var subheaderRow = curTable.rows.add(LocationOptions.BEFORE, curRow);

      subheaderRow.contents = subheaderContents;

    }

    testID = parTFrameID;

  }

}

}

Obi-wan Kenobi
Legend
August 31, 2016

Aha! … "Nobody forces you but, if you give me, it belongs to me and it becomes mine! So it's mine!" Simply logical! 

As we say in French: "Donné, c'est donné ! Reprendre, c'est volé !" 

tpk1982
Legend
August 31, 2016

It looks like you can use header option available in table menu

Obi-wan Kenobi
Legend
August 31, 2016

Nope! Table Title is included in the first cells line! 

tpk1982
Legend
August 31, 2016

Ah.. I missed