Hallo Axel,
habs jetzt mal mit Word 2007 versucht. Auch da sind nur maximal 63 Spalten möglich - schade.
Du hast natürlich recht damit, dass 300 Spalten nicht unbedingt optimal sind. Aber ich sehe da keine andere Lösung. Die meisten Vorlagen liegen schon in Konfiguratonsdokumenten und diese haben auch ein zusätzliches Feld, in das ich normalerweise die Felder eintrage oder beim Excel-Export direkte Zellenzuweisungen in der Form A5 := @Now reinschreiben kann. Das kann ich aber nur machen, wenn ich die Vorlagen selbst erstelle, weil ich dann genau weiß, welche Felder ich benutze. Da die Anwender aber beliebige Seriendruckvorlagen erstellen können, kann ich denen nicht zumuten, danach noch eine Liste mit den Feldern anzulegen.
Vielleicht kurz eine Erläuterung, wie das bei mir funktioniert:
In einem Konfigurationsdokument wird eine Reihe von Seriendruckfeldern definiert. Das sieht dann z. B. so aus:
Heute := @Today <-- @Formeln
Absender := @Name([CN]; @UserName)
Empfänger := sSenderName <-- direkte Feldwerte
Hallo := "Hallo " + Empfänger <-- Zugriff auf den bereits berechneten Spaltenwert "Empfänger"
Adresse := @Implode(sSenderAddress; @Char(10)) <-- Mehrfachwert durch Zeilenschaltung getrennt
Preis«1..9» := val := nPrice«x»; @If(val = ""; ""; @Text(val; "C,2")) <-- Das gibt gleich 9 Spalten!
... usw.
Wie gesagt, das macht dann so um die 300 Spalten. Die Anwender kennen natürlich nur die Seriendrucknamen, also Heute, Absender, Empfänger, Preis1, usw. und können diese beliebig in Ihren Seriendruckdokumenten benutzen. Außerdem hab ich noch einen Assistenten geschrieben, mit dem Sie sich Seriendruckdokumente erstellen können und alle möglichen Feldnamen werden automatisch mit Werten zur Verfügung gestellt.
Die Geschwindigkeit ist kein Problem, die 300 Werte stehen in null komma nix in der Datei. Die Zeit dafür ist minimal und der Word-Aufruf dauert um ein vielfaches länger als die CSV-Erstellung. Bis die Word-Datei fertig ist dauert es zwischen 5 und 10 Sekunden, ich denke, das ist akzeptabel.
Der Benutzer kann also jedes beliebige Feld einsetzen ohne sich darüber Gedanken machen zu müssen, ob dieses Feld noch irgend wie definiert werden muss.
Nochmals vielen Dank für Deine Hilfe,
Joachim