PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Serienbriefe und Excel-Adressdateien



terraboss
13-06-2008, 20:14
Hallo zusammen!

ich stehe vor einer kleinen Herausforderung... ich möchte gerne einen Serienbrief erstellen, allerdings mit Kontaktdaten aus einer Exceltabelle heraus.

a) Ist es möglich *.xls-files einzubinden?
b) Wenn nicht, in welches Format soll ich die Exceldatei konvertieren um sie einbinden zu können (so wie die Daten auch von Excel vorsortiert wurden)?!?

Freundliche Grüße

localghost
13-06-2008, 20:53
Dazu schaust Du dir mal in der Anleitung von KOMA Script (http://dante.ctan.org/CTAN/help/Catalogue/entries/koma-script.html) das Kapitel über die Brief-Klasse scrlttr2 an. Dort ist alles notwendige beschrieben. Eine direkte Verarbeitung von Excel-Tabellen gibt es nach meinem Wissen nicht.


MfG
Thorsten¹

rednammoc
15-06-2008, 07:31
Hey terrabos,

auf CTAN (http://www.ctan.org) kannst du so gut wie jedes Paket finden, dass es zu LaTeX gibt. Dazu gehören auch Pakete um Excel-Tabellen über LaTeX anzusprechen.

- ExcelTex (http://www.ctan.org/tex-archive/macros/latex/contrib/exceltex/#jh65fa708884e0bc739bd973c2fefd1577)
- Excel2Latex (http://www.ctan.org/tex-archive/support/excel2latex/#jhc47c7c7383225ab55ff591cb59c41e6b)

Ansonsten gibt es noch den Weg über PHP:
Dabei exportierst du deine Excel-Tabelle in *.cvs ( Textdatei mit Trennzeichen ), liest diese mit PHP ein und erzeugst über eine While-Schleife den gewünschten LaTeX-Code. Wenns ums ausdrucken geht, würde ich dir eher empfehlen nur ein einziges LaTeX-File zu generieren, wobei jeder Kontakt und dem statischen Text auf einer eigenen Seite steht. Dadurch musst du am Ende nicht jedes PDF-File, sondern nur ein einziges zum ausdrucken markieren.

Die nötigen Funktionen findest du hier
Tutorial: tut.php-quake.net (http://tut.php-quake.net/)
Funktionsreferenz: php.net (http://www.php.net/manual/de/)
oder im Forum.


Grüße
red

terraboss
15-06-2008, 07:51
Ohhh... diesen Support lob ich mir ja mal =)
Danke red! Ich denke ich versuch's mal über die Excel-Pakete.

Schönen Sonntag!

trinix
15-06-2008, 08:39
Wenn du Erfolg hast, dann sag mal Bescheid - würde mich auch interessieren... ;)

rednammoc
15-06-2008, 17:12
Hey,
hier noch ein kleines Code-Beispiel.
Um dieses Beispiel auszuführen benötigt ihr:
- PHP (http://http://www.php.net/downloads.php)
- Apache (http://www.apache.org/dyn/closer.cgi)
- die exportierte CVS-Datei ( muss für dieses Beispiel im gleichen Verzeichnis wie euer Source-Code liegen )



< ? p h p // Ohne Leerzeichen.

$cvs = 'excel.cvs'; // CVS-Datei
$tex = 'test.tex'; // Ausgabe-Datei

// Standardüberprüfung ob Dateien auch wirklich zur Verfügung stehen
if( !file_exists($cvs)){
echo $cvs . ' kann nicht gefunden werden.<br>';
return;
}
if( @!$handle = fopen( $tex, "w")){ // @ unterdrückt Fehlerausgabe
echo 'Beim erstellen von ' . $tex . ' trat ein Fehler auf.<br>';
echo 'Wahrscheinlich besitzt ' . $tex . ' keine Schreibrechte.<br>';
return;
}
$lines = file ($cvs);

// Durchgehen des Arrays und Anzeigen der Kontakte
foreach ($lines as $line) {
$fields = explode(';', $line );

$name = $fields[0]; // Nachname
$surname = $fileds[1];// Vorname
$phone = $fields[2]; // Telefonnummer

$content = "
documentclass[a4paper]{letter}
. . . .
. . . .
Sehr geehrter Herr $name;
. . . .
. . . .
";

echo $content . "< br >"; // Ohne Leerzeichen
if( !fwrite( $handle, $content )){
echo 'Beim schreiben in ' . $aim . ' trat ein Fehler auf.';
}

}

? > // Ohne Leerzeichen


Achtung: Der Code muss vor der Übernahme etwas angepasst werden, denn leider blockt mir das Forum im Code-Abschnitt lustigerweise Steuerzeichen wie < ? p h p , ? > , < b r >, e t c. . Das bedeutet, dass ihr da wo angemerkt die Leerzeichen entfernen müsst.

Grüße
red

rais
15-06-2008, 17:35
Moin moin,


- die exportierte CVS-Datei ( muss für dieses Beispiel im gleichen Verzeichnis wie euer Source-Code liegen )

ist das so etwas wie eine CSV-Datei? Dafür gibt's datatool (http://dante.ctan.org/CTAN/help/Catalogue/entries/datatool.html).;)

BTW: mit


<?php
...
?>
sollte das bei den spitzen Klammern auch ohne Leerzeichen klappen;-)

MfG

rednammoc
15-06-2008, 17:57
@rais:
- CVS, CSV ? Ja, da hast du wohl Recht ^^
-
<?php Funktionier auch :D

Wenigstens ist der PHP-Code richtig^^


rais: Ist das so etwas wie eine CSV-Datei? Dafür gibt's datatool.


rednammoc: auf CTAN kannst du so gut wie jedes Paket finden, dass es zu LaTeX gibt.


Oh je, oh je, und das in meinem Alter xD

Danke und viele Grüße
red