[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Spalten einer Tabelle tauschen in CS6 am Mac

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Spalten einer Tabelle tauschen in CS6 am Mac

JoPo
Beiträge gesamt: 491

16. Jan 2015, 07:09
Beitrag # 1 von 5
Bewertung:
(2266 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten morgen zusammen,
ich muss in etwa 300 kleinen Tabellen die Breiten und die Daten der Spalten 2 und 4 einer 4spaltigen Tabelle tauschen. Jede Tabelle ist in einem separaten Textrahmen mit einigen anderen normalen Textzeilen zusammen. Solche Rahmen stehen 2 bis 10 mal auf etwa 64 Seiten.
Gibt es da einen Automatismus dafür?
Basis: Indd cs6, Apple
Danke für "zweckdienliche" Hinweise (sagt der Mann im ZDF) ;-)
Joachim
X

Spalten einer Tabelle tauschen in CS6 am Mac

Martin Fischer
  
Beiträge gesamt: 12391

16. Jan 2015, 08:23
Beitrag # 2 von 5
Beitrag ID: #536001
Bewertung:
(2238 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Joachim,

es ist nicht möglich, einfach die Spalten einer Tabelle zu tauschen bzw. zu verschieben.
Aber die Inhalte können z.B. über folgenden Weg getauscht werden:

1. Einfügen einer leeren Hilfsspalte am Ende der Tabelle;
2. verschieben der Inhalte der Zellen von Spalte 1 in die entsprechenden Zellen der Hilfsspalte;
3. verschieben der Inhalte der Zellen von Spalte 4 in die entsprechenden Zellen der Spalte 2;
4. verschieben der Inhalte der Zellen von der Hilfsspalte in die entsprechenden Zellen der Spalte 4.


Voraussetzung dafür ist eine eindeutige Adressierung der Zellen der Spalten.
Zellverbindungen könnten störend wirken.

Hier eine einfache Skriptskizze.
Gegeben eine Tabelle und Cursor (Auswahl) in einer Tabellenzelle.

Code
main(); 

function main()
{
if (app.selection.length > 0 && app.selection[0].parent.constructor.name == 'Cell')
var _table = app.selection[0].parent.parent;
else
exit();

if (_table.columns.length < 4)
exit()

var helper_column = _table.columns.add();

move_column_text(_table.columns.item(1), helper_column);
move_column_text(_table.columns.item(3), _table.columns.item(1));
move_column_text(helper_column, _table.columns.item(3));

helper_column.remove();

function move_column_text(source_column, target_column)
{
for (var i = 0; i < source_column.cells.length; i++)
source_column.cells.item(i).texts[0].move(LocationOptions.AFTER, target_column.cells.item(i).insertionPoints.firstItem());
}
}


Zur Behandlung von allen Tabellen müsstest Du noch eine Schleife durch alle Tabellen drumherumbauen.

Sollen nicht nur die Daten, sondern auch Zellformatierungen mutgetauscht werden, müssten die Sicherung der Formatierung ebenfalls in die Zielzellen übernommen/zugewiesen werden.
Das wäre und der Funktion oben durch Zuweisung der Preferences der Quellzellen an die Zielzellen zu erreichen.

Viele Grüße
Martin




als Antwort auf: [#535999]
(Dieser Beitrag wurde von Martin Fischer am 16. Jan 2015, 08:27 geändert)

Spalten einer Tabelle tauschen in CS6 am Mac

JoPo
Beiträge gesamt: 491

16. Jan 2015, 08:58
Beitrag # 3 von 5
Beitrag ID: #536003
Bewertung:
(2223 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

das funktioniert ja wunderbar.
Und du hast Recht mit dem Hinweis auf die Formatierung. Diese bleibt aber erhalten so wie es im Moment aussieht.
Was leider nicht geht ist das Tauschen der Spaltenbreiten. Kannst du das berücksichtigen? Spalte 2 ist 6 mm breit, Spalte 4 ist 22 mm breit. Danach halt umgekehrt. Bis auf wenige Ausnahmen gleich.

Salü
Joachim


als Antwort auf: [#536001]
(Dieser Beitrag wurde von JoPo am 16. Jan 2015, 09:05 geändert)

Spalten einer Tabelle tauschen in CS6 am Mac

Martin Fischer
  
Beiträge gesamt: 12391

16. Jan 2015, 09:09
Beitrag # 4 von 5
Beitrag ID: #536004
Bewertung:
(2218 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Joachim,

bei der Verschieben-Methode oben sollten Textformatierungen beibehalten werden.

Es sind die Zellformatierungen (Flächenfarbe, Kontur, Versatz usw.) die noch nicht berücksichtigt sind.
Falls die Zellen der beiden Spalten hinsichtlich dieser Formatierung (nicht Inhalt) gleich sind, ist die Übergabe der Formatierung nicht nötig.
Gibt es Unterschiede, dann sollte die Übergabe der Zellformatierung noch eingebaut werden.

Zu der Übernahme der Spaltenbreiten:
Code
main(); 

function main()
{
if (app.selection.length > 0 && app.selection[0].parent.constructor.name == 'Cell')
var _table = app.selection[0].parent.parent;
else
exit();

if (_table.columns.length < 4)
exit()

var helper_column = _table.columns.add();

// Spaltenbreiten austauschen
var w_2 = _table.columns.item(1).width;
var w_4 = _table.columns.item(3).width;
_table.columns.item(1).width = w_4;
_table.columns.item(3).width = w_2;

move_column_text(_table.columns.item(1), helper_column);
move_column_text(_table.columns.item(3), _table.columns.item(1));
move_column_text(helper_column, _table.columns.item(3));

helper_column.remove();

function move_column_text(source_column, target_column)
{
for (var i = 0; i < source_column.cells.length; i++)
source_column.cells.item(i).texts[0].move(LocationOptions.AFTER, target_column.cells.item(i).insertionPoints.firstItem());
}
}


Viele Grüße
Martin




als Antwort auf: [#536003]
(Dieser Beitrag wurde von Martin Fischer am 16. Jan 2015, 09:27 geändert)

Spalten einer Tabelle tauschen in CS6 am Mac

JoPo
Beiträge gesamt: 491

16. Jan 2015, 09:28
Beitrag # 5 von 5
Beitrag ID: #536005
Bewertung:
(2198 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

das Script ist ein Traum.
Da die Tabellen keine Zellenformatierungen aufweisen, funktioniert alles wunderbar.
Fast. Aber das wäre jetzt wohl übertrieben.
Denn die Spalte 2 ist linksbündig, die Spalte 4 rechtsbündig. Diese beiden Bedingungen weise ich nach deinem Script noch manuell zu.

Dank deiner Hilfe bin ich mit den 300 Teilen schnell durch. Nur noch Ausrichtung zuweisen und gut.

Vielen vielen Dank
Joachim
Salü
Joachim


als Antwort auf: [#536004]
X

Aktuell

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
21.01.2021 - 22.01.2021

Digicomp Academy AG, Bern oder Basel
Donnerstag, 21. Jan. 2021, 08.30 Uhr - Freitag, 22. Jan. 2021, 17.00 Uhr

Kurs

Dieser Basic-Kurs ist der perfekte Einstieg in die Welt von InDesign, dem vielseitigen Layout-Programm. Sie lernen, wie InDesign aufgebaut ist, wie saubere Dokumente erstellt werden und wie man korrekt mit gelieferten InDesign-Projekten umgeht.

Dauer: 2 Tage
Preis: CHF 1'400.–

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/INDEM1

Veranstaltungen
21.01.2021

Illustrator - das unbekannte Wesen

Online
Donnerstag, 21. Jan. 2021, 19.00 Uhr

Vortrag

Millionen Funktionen, und immer kommen neue dazu! Monika Gause ist jeden Januar aufs Neue ein gern gesehener Gast bei der IDUG Stuttgart. - Sie bringt alle Neuerungen mit, die 2020 dazukamen und jede Menge Tipps und Tricks. - Zudem wird sie uns informieren, was wir in Illustrator beachten müssen, wenn wir Daten fürs Web erstellen bzw. aufbereiten. - Wichtig zu wissen: "Dos and Don'ts" in Illustrator. Welche Fehler sollte man dringend vermeiden und was muss man unbedingt tun, damit es Spaß macht mit Illustrator zu arbeiten. - Dieses Jahr hast Du zusätzlich die Möglichkeit Monika im Voraus Fragen zu stellen. Fülle dieses Formular mit deinen Fragen; auch Beispieldateien sind anfügbar: https://forms.gle/fJmF8C6MjbDoEhED8

Nein

Organisator: InDesign Usergroup Stuttgart

Kontaktinformation: Christoph Steffens, E-Mailidug AT satzkiste DOT de

https://idugs67.eventbrite.de/

IDUGS #67 Illustrator mit Monika Gause

Neuste Foreneinträge


Affinity Photo od. Designer -Bildecke einrollen

CC 2020: Problem mit Textumfluss mit verankerten Objekten

Abrisse im Druck

Farbmanagement bei Fotoabzügen

Dokument einrichten per Javascript [AI24.3, WIN10]

Problem mit arabischer Schrift: Wie von rechts nach links setzen?

Suchen u. Ersetzen von Strings mit bestimmter horizontaler Skalierung [INDD15.1.1 WIN10]

Netzwerklaufwerke verbinden -> Bei nicht verfügbar Fehlermeldung unterdrücken

Fortlaufende Nummerierung der Druckbogen

Verschiedene Netzwerke Handeln
medienjobs