Skip to content
Fabian Morón Zirfas edited this page Jun 13, 2025 · 4 revisions

This little script shows how to apply a conditional formatting to table cells. If the cell has content it will use one CellStyle if not another. Written for this http://graphicdesign.stackexchange.com question: "Automatically apply table cell style based on whether the cell is empty or has content"

/* global app $ exit */

// stop the execution when nothing is selected
if (app.selection.length < 1) {
	$.writeln("no selection");
	exit();
}
var sel = app.selection[0];
// stop the execution when there is no table
if (sel.hasOwnProperty("tables") === false) {
	$.writeln("no tables");
	exit();
}
var table = sel.tables[0]; // get the selected table

// great we made it here - so there must be a table in the selection
// loop all the cells in that first table in the selection
//
// !Hint:
// If you want to speed up things.
// - Remove the else block within the loop
// - comment in the next line:
//
// table.cells.everyItem().appliedCellStyle = 'bah';
//
// This will apply a style to every cell
// and afterwards it will overwrite only the ones with content
// in the following loop
//
for (var i = 0; i < table.cells.length; i++) {
	// check if the content is an empty string
	if (table.cells[i].contents === "") {
		// set the appliedCellStyle to the CellStyle named "foo"
		// if the styles don't exist this will through an error
		table.cells[i].appliedCellStyle = "foo";
	} else {
		// if the cells content is not an empty string
		// set the appliedCellStyle to the CellStyle named "bah"
		// if the styles don't exist this will through an error
		table.cells[i].appliedCellStyle = "bah";
	}
}
// we are done

This Snippet edits the contents of each cell in a selected table. It assumes you have a document with a table in it and some cells with content. The table needs to be selected.

var table = app.activeDocument.selection[0];
for (var i = 0; i < table.cells.length; i++) {
	var cell = table.cells[i];
	$.writeln(cell.contents);
	cell.contents = cell.contents.toLowerCase();
	$.writeln(cell.contents);
}

Home

Clone this wiki locally