[ID CC-CC2022] Почему скрипт не видит текст в ячейке

  • Автор темы Автор темы hulk1776
  • Дата начала Дата начала

hulk1776

Топикстартер
15 лет на форуме
Сообщения
738
Реакции
21
Есть таблица. В третьей колонке текст в каждой ячейке состоит из пяти абзацев.
Можно ли разом абзацы в каждой ячейке этой колонки через команду everyItem?
Типа так:
Код:
with (myTable.columns[2].cells.everyItem())
Не хочется применять цикл for.
Код:
for (i=0; i< myTable.columns[2].cells.length; i++)
То есть можно ли как-то обращаться к каждому everyItem? Или everyItem годится только для одной какой-то команды? Типа, "шрифт 10 пт" и пр.
 
Последнее редактирование:
Вообще ваше выражение возвращает не текст а список ячеек
 

Код:
for (i=0; i< myTable.columns[2].cells.length; i++)
{
var mT = myTable.columns[2].cells[i].texts[0].paragraphs;
mT[0].applyParagraphStyle (mstyle1, true);
mT[1].applyParagraphStyle (mstyle2, true);
mT[2].applyParagraphStyle (mstyle3, true);
mT[3].applyParagraphStyle (mstyle4, true);
mT[4].applyParagraphStyle (mstyle5, true);
}
То есть абзацы внутри ячейки оформляются нужными стилями по порядку. Можно ли это же самое проделать через команду everyItem? А не через цикл. ЕveryItem вроде бы работает быстрее (хотя и так не сильно медленно).
 
Ну так обратите внимание, у вас стиль применяется не к ячейкам а к .texts[0].paragraphs внутри них
Я понятно излагаю?
 
Код:
with (app.activeDocument.textFrames[0].tables[0].columns[2].cells.everyItem().texts[0]){
    paragraphs[0].applyParagraphStyle(app.activeDocument.paragraphStyles[2]);
    paragraphs[1].applyParagraphStyle(app.activeDocument.paragraphStyles[3]);
    paragraphs[2].applyParagraphStyle(app.activeDocument.paragraphStyles[4]);
    paragraphs[3].applyParagraphStyle(app.activeDocument.paragraphStyles[5]);
    paragraphs[4].applyParagraphStyle(app.activeDocument.paragraphStyles[6]);
    }
 
  • Спасибо
Реакции: hulk1776
Ну так обратите внимание, у вас стиль применяется не к ячейкам а к .texts[0].paragraphs внутри них
Я понятно излагаю?
Да, понятно. Я просто помню, что everyItem не давал что-то сделать. Поэтому напираю на for. Но Евгений показал, что все работает как надо. Спасибо)
 
Код:
with (app.activeDocument.textFrames[0].tables[0].columns[2].cells.everyItem().texts[0]){
    paragraphs[0].applyParagraphStyle(app.activeDocument.paragraphStyles[2]);
    paragraphs[1].applyParagraphStyle(app.activeDocument.paragraphStyles[3]);
    paragraphs[2].applyParagraphStyle(app.activeDocument.paragraphStyles[4]);
    paragraphs[3].applyParagraphStyle(app.activeDocument.paragraphStyles[5]);
    paragraphs[4].applyParagraphStyle(app.activeDocument.paragraphStyles[6]);
    }
Отлично! Все сработало. И вроде даже как немного быстрее, чем в цикле. Измерял на 75 ячейках с 5 абзацами внутри. Где-то полсекунды-секунда выигрыш. Спасибо за подсказку.
p.s. Да и в undo history всего пять команд образовалось, а не 75*5.
 
Последнее редактирование: