Welcome Dialog

Welcome to the Community!

We have a brand new look! Take a tour with us and explore the latest updates on Adobe Support Community.


Select table using script

Explorer ,
Nov 11, 2014 Nov 11, 2014

Copy link to clipboard

Copied

Hi,

The below line selected all the tables in the document. I need to select a first table and then next table etc...

var myTable = app.activeDocument.tables.everyItem().getElements();

Anyone help me?

I am in new for scripting. How do i refer this type of InDesign commands while i am writing scripts?

Regards,

Velumani

TOPICS
Scripting

Views

1.9K

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Enthusiast , Nov 11, 2014 Nov 11, 2014
Try this, var myTable = app.activeDocument.stories.everyItem().tables.everyItem().getElements(); alert(myTable.length)//no. of tables in a document for(var i=0; i<myTable.length; i++) {     myTable.select()//selecting each an every table     alert("Table " + (i+1) + " Selected"); } Vandy

Likes

Translate

Translate
Enthusiast ,
Nov 11, 2014 Nov 11, 2014

Copy link to clipboard

Copied

Try this,

var myTable = app.activeDocument.stories.everyItem().tables.everyItem().getElements();

alert(myTable.length)//no. of tables in a document

for(var i=0; i<myTable.length; i++)

{

    myTable.select()//selecting each an every table

    alert("Table " + (i+1) + " Selected");

}

Vandy

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Nov 12, 2014 Nov 12, 2014

Copy link to clipboard

Copied

Hi Vandy,

Thank you for the script.

Regards,

Velu

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Jun 25, 2016 Jun 25, 2016

Copy link to clipboard

Copied

Dear Sanjeev Ji,

Select one by one table, but I want to change also vertical alignment: centre.

Can it possible?

-Sumit

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
May 06, 2016 May 06, 2016

Copy link to clipboard

Copied

I'm following this forum, what kind of script is this? .vbs or java?

I'm interested to try this.

Thank you!

Michelle

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
May 06, 2016 May 06, 2016

Copy link to clipboard

Copied

Hi Vandy,

I tried the script and it works selecting the tables one after another. I need the script to work like: a table was selected and separated from the text frame and a copy can be pasted on the pasteboard and it will repeat its process depending how many tables there are in the text frame. I'm not that familiar with script, this might give me an idea to start creating on my own. I really appreciate your help.

Thank you!

Michelle

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
May 07, 2016 May 07, 2016

Copy link to clipboard

Copied

micheller81371267 wrote:

I'm following this forum, what kind of script is this? .vbs or java?

I'm interested to try this.

Hi Michelle,

this is Adobe ExtendScript (JavaScript).
You are ready to go, if you will save the code as text-only file with a *.jsx suffix.

Uwe

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
May 09, 2016 May 09, 2016

Copy link to clipboard

Copied

Hi Uwe,

Thank you, the script helps but I need it more specific to do this job: a table selected and separated from the text frame; cut and pasted on the pasteboard and it will repeat its process depending how many tables there are in the text frame. I'm not that familiar with script, this might give me an idea to start creating on my own. I really appreciate your help

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Sep 14, 2021 Sep 14, 2021

Copy link to clipboard

Copied

Hi there, I realise that this thread is quite old now but I have just used this in InDesign version 15.0.1.

 

what have I done wrong to get error string: 'myTable.select is not a function'? do I need to add something to the script?

I am not a scripting expert would really appreciate if someone could explain in simple terms 🙂 Thank you

rudesign_0-1631609226949.png

 

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Sep 14, 2021 Sep 14, 2021

Copy link to clipboard

Copied

FYI: I am trying to run a script that can select all the tables in my InDesign document (approx 750 tables)

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Oct 06, 2021 Oct 06, 2021

Copy link to clipboard

Copied

LATEST

Edit: disregard I see you got answers below.

 

Much code got broken when the forums changed. 

 

Change the offending line to 

myTable[i].select();

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Sep 14, 2021 Sep 14, 2021

Copy link to clipboard

Copied

Hi ru.design,

the code was damaged when this thread was moved from the old Adobe InDesign Scripting forum to the new Adobe InDesign forum. Corrected code:

var myTable = app.activeDocument.stories.everyItem().tables.everyItem().getElements();

alert(myTable.length)//no. of tables in a document

for(var i=0; i<myTable.length; i++)
{
    myTable[i].select()//selecting each an every table
    alert("Table " + (i+1) + " Selected");
};

 

I changed myTable.select() to myTable[i].select()

 

Regards,
Uwe Laubender

( ACP )

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Sep 14, 2021 Sep 14, 2021

Copy link to clipboard

Copied

Hi Uwe Laubender,

 

thank you kindly for your updated code.

but I still get this error, any ideas what I am doing wrong?

rudesign_0-1631622287828.png

 

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Sep 14, 2021 Sep 14, 2021

Copy link to clipboard

Copied

That's not an error. It's just that alert message in the code telling you the number of tables in your document.

Press OK and the next thing should be the first table selected.

 

Regards,
Uwe Laubender

( ACP )

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Sep 14, 2021 Sep 14, 2021

Copy link to clipboard

Copied

oh thank you! there are 740 tables in the document I can't press OK for all of them. I tried it and it just tells me that 1 table selected...2 tables selected....3 tables selected etc. Is there no other way to do it?

 

instead of selecting them maybe I need one script for all of what I want to do

1. Delete the right column from all of my tables

2. Revert the width of the tables to the original size (before the above action)

 

is this possible with one script?

thank you so much

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Sep 14, 2021 Sep 14, 2021

Copy link to clipboard

Copied

Hi,

 

A script like this could be helpful

 

  

// Get all the tables
var myTables = app.activeDocument.stories.everyItem().tables.everyItem().getElements();
// Loop for each tabls
for ( var i = 0; i < myTables.length; i++){
    var myTable = myTables[i];
    // work out how much we have to stretch the table
    // the width of the column we are removing
    var widthToMakeUp = myTable.columns[myTable.columnCount - 1].width;
    // remove the columne
    myTable.columns[myTable.columnCount - 1].remove();
    // divide what we need to make up by the columns that are left
    widthToMakeUp = widthToMakeUp / myTable.columnCount;
    // for each column add a little to make the width the same as when we started
    for ( var j = 0; j < myTable.columns.length; j++){
        myTable.columns[j].width  = myTable.columns[j].width + widthToMakeUp;
    }
}

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Oct 06, 2021 Oct 06, 2021

Copy link to clipboard

Copied

@BarlaeDCThank you soooo much. Your script did EXACTLY what I wanted. You've made this task take 5 minutes instead of 5 days. 🙂

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines