[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Leere Tabellenzellen "automatisch" befüllen

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

Leere Tabellenzellen "automatisch" befüllen

Ralf Hobirk
Beiträge gesamt: 5955

21. Okt 2011, 19:31
Beitrag # 1 von 10
Bewertung:
(9921 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

in meinen Katalogen habe ich Preistabellen, die ich per Copy/Paste mit Daten aus Excel-Tabellen befülle. Soweit kein Problem, das geht recht fix.

Das Problem ist, dass manchmal einzelne Spalten bzw. mehrere Tabellenzellen keine Preise haben. In diese Zellen muss ich dann einen Halbgeviertstrich setzen, also tippen oder kopieren. Diese Halbgeviertstriche (oder auch andere Ersatzzeichen) sind in den Excel-Tabellen nicht vorhanden. Da die Excel-Tabellen kundenseitig aus einem anderen System automatisch generiert werden, ist es auch nicht möglich, diese leeren Zellen in Excel automatisch mit dem Halbgeviertstrich befüllen zu lassen.

Jetzt meine konkrete Frage bzw. die gewünschte Vorgehensweise eines möglichen Scripts:

– In einem (einseitigen) Dokument gibt es immer nur eine Tabelle.
– Die Tabelle steht als einziger Inhalt in einem Textrahmen mit zugewiesenem eindeutigen Objektformat.
– Ich verwende konsequent Zellenformate.
– Es wird geprüft, ob die Zellen eines bestimmten Zellenformates leer sind oder nicht.
– Wenn die Zellen Zeichen/Zahlen enthalten, bleibt der Inhalt unverändert.
– Wenn die Zellen leer sind, wird ein Halbgeviertstrich eingesetzt.

Ist so etwas mit geringem Aufwand realisierbar? Ich danke schonmal für eure Antworten, ob positiv oder negativ… ;-)
X

Leere Tabellenzellen "automatisch" befüllen

WernerPerplies
Beiträge gesamt: 2693

21. Okt 2011, 19:48
Beitrag # 2 von 10
Beitrag ID: #482819
Bewertung:
(9919 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Ralf,

Zitat Ist so etwas mit geringem Aufwand realisierbar?


realisierbar: ja.

Wie definierst geringen Aufwand?


als Antwort auf: [#482818]

Leere Tabellenzellen "automatisch" befüllen

Ralf Hobirk
Beiträge gesamt: 5955

21. Okt 2011, 20:04
Beitrag # 3 von 10
Beitrag ID: #482821
Bewertung:
(9907 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner,

Antwort auf: Wie definierst geringen Aufwand?

Dass es nur um ein paar Codezeilen handelt, die schnell erstellt sind, ohne größeren zeitlichen Aufwand. Beim aktuellen Job sollten es ca. 1.000 leere Tabellenzellen sein, gemessen am Vorjahreskatalog. Die kann ich manuell mit einem Zeitaufwand von schätzungsweise insgesamt einer knappen Stunde manuell füllen.

Es scheint sich demnach nicht zu lohnen. Gefühlt hat das immer länger gedauert, oder besser gesagt, genervt. Aber jetzt habe ich mal gerechnet und 3 Sekunden pro Zelle angesetzt. Das Öffnen, Sichern und Schließen der Dateien kann ich vernachlässigen, da ich die Halbgeviertstriche in sowie bereits geöffnete Dateien tippe.

Ich glaube, wir vergessen die Geschichte besser.


als Antwort auf: [#482819]

Leere Tabellenzellen "automatisch" befüllen

WernerPerplies
Beiträge gesamt: 2693

21. Okt 2011, 20:09
Beitrag # 4 von 10
Beitrag ID: #482822
Bewertung:
(9904 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Ralf,

Zitat Ich glaube, wir vergessen die Geschichte besser.



Nein, für solch einen Job sind auch 10 Minuten manuelle Arbeit zu viel.

Schick mir einfach mal 'ne kleine Tabelle, vorher/nachher.

Meine Rückfrage bezog sich lediglich darauf, dass geringer Aufwand sehr relativ ist.


als Antwort auf: [#482821]

Leere Tabellenzellen "automatisch" befüllen

Martin Fischer
  
Beiträge gesamt: 12664

21. Okt 2011, 20:28
Beitrag # 5 von 10
Beitrag ID: #482823
Bewertung:
(9891 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Ralf,

auf die Schnelle:

Code
var d = app.documents.firstItem(); 
for (var s = 0; s < d.stories.length; s++)
{
for (var t = 0; t < d.stories.item(s).tables.length; t++)
{
for (var c = 0; c < d.stories.item(s).tables.item(t).cells.length; c++)
{
if (d.stories.item(s).tables.item(t).cells.item(c).appliedCellStyle.name == 'meiner') // hier Zellenformat angeben
{
var _content = d.stories.item(s).tables.item(t).cells.item(c).texts.firstItem().contents;
if (_content.replace(/\s+/g,'') == '')
{
d.stories.item(s).tables.item(t).cells.item(c).texts.firstItem().contents = '–';
}
}
}
}
}


Du bist doch hoffentlich nicht schon fertig. ;-)


als Antwort auf: [#482821]
(Dieser Beitrag wurde von Martin Fischer am 21. Okt 2011, 20:33 geändert)

Leere Tabellenzellen "automatisch" befüllen

Ralf Hobirk
Beiträge gesamt: 5955

21. Okt 2011, 20:47
Beitrag # 6 von 10
Beitrag ID: #482824
Bewertung:
(9864 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner,

ich hatte gerade zwei IDMLs vorbereitet, da kam Martins Lösung. Trotzdem danke für dein Interesse.


Hallo Martin,

es funktioniert perfekt. Damit kann ich mir sogar sparen, Zellenformate anzulegen ;-)

Ich hatte mich nur vertan: Es handelt sich nicht um einen Halbgeviertstrich, sondern um einen Geviertstrich. Das habe ich bereits in deinem Code geändert ;-)

(mal wieder) vielen Dank! Und natürlich ein schönes Wochenende…

Edit:
Antwort auf: Du bist doch hoffentlich nicht schon fertig. ;-)

Nö, ich habe noch gar nicht angefangen. Schätzungsweise ab Montag… Und ich habe mit der Version VOR deinem Edit gearbeitet/getestet.


als Antwort auf: [#482823]
(Dieser Beitrag wurde von Ralf Hobirk am 21. Okt 2011, 20:53 geändert)

Leere Tabellenzellen "automatisch" befüllen

Martin Fischer
  
Beiträge gesamt: 12664

21. Okt 2011, 21:01
Beitrag # 7 von 10
Beitrag ID: #482825
Bewertung:
(9845 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ Ralf ] Nö, ich habe noch gar nicht angefangen.


Gut, ich musste die Kleinen noch zu Bette bringen.
Der schönste Moment des Tages. ;-)


Antwort auf: Damit kann ich mir sogar sparen, Zellenformate anzulegen ;-)

Du überrascht mich.
Dachte, das sei bereits geschehen und eine der Bedingungen für das Einfügen des Strichs.

Aber sei's drum.
Wenn's läuft, dann läuft's.
Viel Spaß beim Stricheln.;-)


als Antwort auf: [#482824]

Leere Tabellenzellen "automatisch" befüllen

Ralf Hobirk
Beiträge gesamt: 5955

21. Okt 2011, 21:05
Beitrag # 8 von 10
Beitrag ID: #482827
Bewertung:
(9839 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Dachte, das sei bereits geschehen und eine der Bedingungen für das Einfügen des Strichs.

Nein, aber ich dachte dass dies evtl. Voraussetzung für die Lösung sein könnte.

Ich muss jedoch nochmal genau checken, ob es nicht evtl. irgendwo leere Zellen gibt, die leer bleiben müssen. Sollte dies so sein, greife ich auf deine zweite Version zurück, die berteits im Script-Archiv liegt ;-)


als Antwort auf: [#482825]

Leere Tabellenzellen "automatisch" befüllen

WernerPerplies
Beiträge gesamt: 2693

22. Okt 2011, 07:47
Beitrag # 9 von 10
Beitrag ID: #482838
Bewertung:
(9750 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Ralf,

da nich für, ich hatte hier ja bereits ein Skript, das 95% des Jobs schon erledigt hätte.

Mein größeres Problem ist immer die Erstellung der Testdaten und außerdem möchte ich Probleme wie
Zitat Ich hatte mich nur vertan: Es handelt sich nicht um einen Halbgeviertstrich, sondern um einen Geviertstrich.

vermeiden

Aber ich freue mich, das Martin das Problem bereits erledigt hat.

Weiterhin frohes Schaffen.


als Antwort auf: [#482824]

Leere Tabellenzellen "automatisch" befüllen

Martin Fischer
  
Beiträge gesamt: 12664

22. Okt 2011, 09:21
Beitrag # 10 von 10
Beitrag ID: #482839
Bewertung:
(9733 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Ralf,

Antwort auf: Ich muss jedoch nochmal genau checken, ob es nicht evtl. irgendwo leere Zellen gibt, die leer bleiben müssen. Sollte dies so sein, greife ich auf deine zweite Version zurück, die berteits im Script-Archiv liegt ;-)


Hier die Kurzform der ursprünglichen Fassung (ohne Prüfung auf ein Zellformat).

Code
// fillEmptyCells.jsx 
//DESCRIPTION:Füllt leere Zellen in den Tabellen eines Dokuments mit einem angegebenen Zeichen.

var _str = prompt( 'Füllzeichen', '\u2014' );
if ( _str != null && _str != '' )
{
var ct = app.documents.firstItem().stories.everyItem().tables.everyItem().cells.everyItem().texts.firstItem().getElements();
for ( var i = 0; i < ct.length; i++ )
if ( ct[i].contents.replace(/\s+/g,'' ) == '' )
ct[i].contents = _str;
}



als Antwort auf: [#482827]
X

Aktuell

PDF / Print
Wolken_300

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
01.12.2022

Online
Donnerstag, 01. Dez. 2022, 10.00 - 10.45 Uhr

Webinar

Die drei ColorLogic-Programme ZePrA, CoPrA und ColorAnt sind in neuen Versionen mit vielen neuen Funktionen im Jahr 2022 veröffentlich worden oder werden in Kürze veröffentlicht (ColorAnt 9). In unserem ca. 45 minütigen kostenlosen Webinar zeigen wir Ihnen einige dieser neuen Funktionen mit dem Schwerpunkt auf Automatisierung und Produktivitätssteigerungen.

Ja

Organisator: Impressed GmbH

Kontaktinformation: Silvia Noack, E-Mailsnoack AT impressed DOT de

https://www.impressed.de/schulung.php?c=sDetail&sid=311

ColorLogic Update-Webinar ZePrA 10, CoPrA 9 und ColorAnt 9
Veranstaltungen
02.02.2023

Prozesse optimieren und effizient gestalten

Zürich
Donnerstag, 02. Feb. 2023, 08.00 - 10.00 Uhr

Digitalisierung, Webauftritt

Digitalisierung mitgestalten - Worauf kommt es an? Wie wichtig ist die Webseite? Webseite mit Word Press? Interne Prozesse optimieren

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: Birol Isik, E-Mailinfo AT bkcc DOT ch

https://digitalisierung-heute.ch/digitalisierung-informationstag-schweiz/