[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Verknüpfte Excel-Tabellen finden

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

Verknüpfte Excel-Tabellen finden

WeTobi
Beiträge gesamt: 4

22. Aug 2017, 14:36
Beitrag # 1 von 8
Bewertung:
(3122 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

ich habe in Indesign CS5 ein Dokument u. a. mit vielen verknüften Excel2016.xlsx-Tabellen und auch weiteren "normalen" Tabellen.

Nun möchte ich nur den verknüpften Excel-Tabellen ein Tabellenformat per Script zuweisen. Tabellen suchen und Format zuweisen an sich ist kein Problem, aber ich schaffe das bisher immer nur für alle Tabellen.

Wie kann ich von der Tabelle ausgehend die Verknüpfung abfragen?
Oder ggf. ausgehend vom Link das Tabellenformat setzen?

Viele Grüße

Tobias
X

Verknüpfte Excel-Tabellen finden

Kai Rübsamen
Beiträge gesamt: 4684

22. Aug 2017, 14:54
Beitrag # 2 von 8
Beitrag ID: #559166
Bewertung:
(3117 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Tobias,

hab es nicht getestet, sollte aber so funktionieren: du könntest eine Schleife durch alle Tabellen machen und prüfen, ob für die gerade untersuchte Tabelle "unlink" zur Verfügung steht. Falls ja, ist die Tabelle verknüpft.


als Antwort auf: [#559165]

Verknüpfte Excel-Tabellen finden

WeTobi
Beiträge gesamt: 4

5. Sep 2017, 18:31
Beitrag # 3 von 8
Beitrag ID: #559338
Bewertung:
(2978 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Kai,

leider bin ich auch nach einiger Herumprobiererei nicht weitergekommen.

Code
var _dok = app.activeDocument; 

TabellenSuchen("MeinTabellenformat");

function TabellenSuchen(_tstyle) {
// Schleife durch Textabschnitte
for (s = 0; s < _dok.stories.count(); s++) {
// Schleife durch Tabellen
for (var t = 0; t < _dok.stories.item(s).tables.count(); t++) {
var _table = _dok.stories.item(s).tables.item(t)
// Format zuweisen
alert(_table.hasOwnProperty("unlink"))
if (_table.hasOwnProperty("unlink")) {
_table.appliedTableStyle = _tstyle;
alert("Funktioniert!")
}
}
}
}


Ich erhalte immer false als Ergebnis. Noch eine Idee?

Viele Grüße

Tobias


als Antwort auf: [#559166]

Verknüpfte Excel-Tabellen finden

Martin Fischer
  
Beiträge gesamt: 12783

6. Sep 2017, 13:20
Beitrag # 4 von 8
Beitrag ID: #559347
Bewertung:
(2936 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Tobias,

ich vermute, Du suchst den Link an der falschen Stelle.
Beim Platzieren einer Tabelle wird nicht die Tabelle verlinkt (eine Tabelle hat keinen itemLink), sondern der Textabschnitt (story), in dem die Tabelle - möglicherweise alleine ohne umgebenden Text - steckt.

Dieser Textabschnitt hat - sofern verknüpft - einen itemLink.
Und auf diesen itemLink - nicht den Textabschnitt selbst und nicht die Tabelle - kannst Du den Befehl unlink() anwenden.

Mögliche Parents eines Links sind
- Graphic
- Movie
- Sound
- Story

Nicht aber
- Table

Du könntest nun so vorgehen und in einer Schleife durch die Stories prüfen,
a) ob die jeweilige Story eine Verknüpfung (itemLink) hat und
b) wenn ja, ob sie genau eine Tabelle (und eventuell nur diese) enthält.

Oder Du prüfst die Links in einer Schleife, ob der jeweilige Link zu einer Story mit genau einer Tabelle (und nix anderem, also Story.characters.length == 1) führt.


als Antwort auf: [#559338]
(Dieser Beitrag wurde von Martin Fischer am 6. Sep 2017, 13:22 geändert)

Verknüpfte Excel-Tabellen finden

WeTobi
Beiträge gesamt: 4

6. Sep 2017, 20:13
Beitrag # 5 von 8
Beitrag ID: #559360
Bewertung:
(2903 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

ich hatte zwar inzwischen grundsätzlich verstanden, dass Tabellen da "anders" sind, konnte es aber nicht so richtig umsetzen.

Zwischenzeitlich hatte ich mir eine Lösung gebastelt, die zuerst ein Array mit allen Story-IDs mit Excel-Links aufbaut. Im Anschluss wurde dann in meiner Schleife geprüft, ob die Story-ID im Tabellenkontext in dieser Liste vorkommt. Umständlich, hat aber soweit funktioniert.

Mit Deinem Denkanstoß geht es jetzt doch etwas einfacher:

Code
var _dok = app.activeDocument; 

TabellenSuchen("MeinTabellenformat");

// Tabellenformat setzen
function TabellenSuchen(_tstyle) {
// Schleife durch Textabschnitte (stories)
for (s = 0; s < _dok.stories.count(); s++) {
// Schleife durch Tabellen (tables)
for (var t = 0; t < _dok.stories.item(s).tables.count(); t++) {
var _Tabelle = _dok.stories.item(s).tables.item(t)
// Format zuweisen, wenn ein Link im Textabschnitt (story) vorhanden ist
if (_Tabelle.parent.parentStory.itemLink != null) {
_Tabelle.appliedTableStyle = _tstyle;
}
}
}
}


Ich bin mir bewusst, dass es hier noch bei mehreren Tabellen im Textabschnitt Probleme geben könnte, sofern nur manche verlinkt sind. Aber das ist in meinem Anwendungsfall kein Problem.

Vielen Dank Euch beiden.

Viele Grüße

Tobias


als Antwort auf: [#559347]

Verknüpfte Excel-Tabellen finden

Kai Rübsamen
Beiträge gesamt: 4684

7. Sep 2017, 12:32
Beitrag # 6 von 8
Beitrag ID: #559365
Bewertung:
(2861 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Tobias,

komme heute erst aus dem Urlaub, daher eine verspätete Rückmeldung. Wie Martin bereits geschrieben hat, funktioniert mein direkter Ansatz nicht.

Es scheint für mehrere Tabellen (mal verknüpft, mal nicht) in einem Textabschnitt auch keine Lösung zu geben, da das hier ebenfalls nicht geht:

Code
// das aktive Dokument 
var curDoc = app.activeDocument;

// alle Links im Dokument
var allLinks = curDoc.links;

for (var i = allLinks.length-1; i >= 0; i--) {
var curLink = allLinks[i];
// den Typ der Verlinkung prüfen
if (curLink.linkType.match(/Excel/)) {
curLink.unlink();
}
}


Der parent von curLink ist ebenfalls story. Wenn ich jetzt die Tabellen (vor dem unlink()) untersuche, habe ich nichts gewonnen.


als Antwort auf: [#559360]

Verknüpfte Excel-Tabellen finden

Uwe Laubender
Beiträge gesamt: 5319

7. Sep 2017, 17:03
Beitrag # 7 von 8
Beitrag ID: #559367
Bewertung:
(2840 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Tobias,
hm…

Mehrere verlinkte Tabellen in einem Textabschnitt ??!

Ich glaube, das ist nicht möglich… Jedenfalls nicht mit unterschiedlich verlinkten Dateien. Und falls ja, eine sehr, sehr schlechte Strategie, um Inhalte auf dem neuesten Stand zu halten.

Falls Du nämlich eine einzige verlinkte Tabelle in einem Textabschnitt hast, die auf den neuesten Stand gebracht werden soll, ersetzt Du beim Update des Links alle im Textabschnitt befindlichen Inhalte mit der aktuellen Version der einzelnen, verlinkten Tabelle.


als Antwort auf: [#559360]

Verknüpfte Excel-Tabellen finden

WeTobi
Beiträge gesamt: 4

7. Sep 2017, 17:35
Beitrag # 8 von 8
Beitrag ID: #559368
Bewertung:
(2832 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,

mehrere Tabellen pro Textabschnitt sind ja zweifelsohne möglich, aber anscheinend tatsächlich nicht mehrere verlinkte.

Aber ich halte mich eh daran - ausschließlich eine verlinkte Tabelle pro Textabschnitt. Ich wollte nur auf möglichen Grenzen meines Skriptes hinweisen.

Viele Grüße

Tobias


als Antwort auf: [#559367]
(Dieser Beitrag wurde von WeTobi am 7. Sep 2017, 17:36 geändert)
X