hilfdirselbst.ch
Facebook Twitter gamper-media
WeTobi
Beiträge: 4
22. Aug 2017, 14:36
Beitrag #1 von 8
Bewertung:
(2344 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Verknüpfte Excel-Tabellen finden


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
Top
 
X
Kai Rübsamen  M  p
Beiträge: 4526
22. Aug 2017, 14:54
Beitrag #2 von 8
Beitrag ID: #559166
Bewertung:
(2339 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Verknüpfte Excel-Tabellen finden


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.
Gruß Kai Rübsamen
_______________________
als Antwort auf: [#559165] Top
 
WeTobi
Beiträge: 4
5. Sep 2017, 18:31
Beitrag #3 von 8
Beitrag ID: #559338
Bewertung:
(2200 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Verknüpfte Excel-Tabellen finden


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] Top
 
Martin Fischer  M  p
Beiträge: 11867
6. Sep 2017, 13:20
Beitrag #4 von 8
Beitrag ID: #559347
Bewertung:
(2158 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Verknüpfte Excel-Tabellen finden


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.

Viele Grüße
Martin
als Antwort auf: [#559338]
(Dieser Beitrag wurde von Martin Fischer am 6. Sep 2017, 13:22 geändert)
Top
 
WeTobi
Beiträge: 4
6. Sep 2017, 20:13
Beitrag #5 von 8
Beitrag ID: #559360
Bewertung:
(2125 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Verknüpfte Excel-Tabellen finden


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] Top
 
Kai Rübsamen  M  p
Beiträge: 4526
7. Sep 2017, 12:32
Beitrag #6 von 8
Beitrag ID: #559365
Bewertung:
(2083 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Verknüpfte Excel-Tabellen finden


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.
Gruß Kai Rübsamen
_______________________
als Antwort auf: [#559360] Top
 
Uwe Laubender S
Beiträge: 4126
7. Sep 2017, 17:03
Beitrag #7 von 8
Beitrag ID: #559367
Bewertung:
(2062 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Verknüpfte Excel-Tabellen finden


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.
*****
Mit herzlichem Gruß,
Uwe Laubender
als Antwort auf: [#559360] Top
 
WeTobi
Beiträge: 4
7. Sep 2017, 17:35
Beitrag #8 von 8
Beitrag ID: #559368
Bewertung:
(2054 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Verknüpfte Excel-Tabellen finden


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)
Top
 
X