START > APPLESCRIPT > Gebrauchsfertige Scripts > Adressbuch - csv-Konverter

Adressbuch - csv-Konverter

csv2vCard v0.4 (© by skeeve)

Dieses mit perl bestückte Applescript konvertiert eine csv-Datei (genauer: eine tsv-Datei, also tabulator-getrennte Datei) in eine vcf-Datei (Visitenkarte) für den Import ins Apple Adressbuch. Somit ließen sich beispielsweise als tab-separierte Textdateien exportierte Excel-Tabellen mit Kontaktinformationen ins Adressbuch übernehmen.

 

Voraussetzungen:

1)  Die Datei ist als UTF-8 gespeichert

2)  Die 1. Zeile beinhaltet die Spaltenüberschrifen

3)  Die Spaltenüberschriften sind:

(Nicht alle Spaltenüberschriften müssen da sein. Die Reihenfolge der Spalten ist beliebig.)


Spaltenbezeichner (mehr oder weniger) sinnvoll sortiert & gruppiert:
Personendaten
   Praefix
   Vorname
   Zweiter Vorname
   Nachname
   Geburtsname
   Suffix
   Spitzname

Berufliche Kontaktdaten
   Firma
   Abteilung
   Position
   E-Mail (Arbeit)

   Strasse (Arbeit)
   PLZ (Arbeit)
   Stadt (Arbeit)
   Land (Arbeit)

   Fax (Arbeit)
   Telefon (Arbeit)
   Telefon (Zentrale)
   Telefon (Mobil)
   Pager

   AIM (Arbeit)
   ICQ (Arbeit)
   Jabber (Arbeit)
   MSN (Arbeit)
   Yahoo (Arbeit)

Private Kontakdaten
   E-Mail (Privat)

   Homepage

   Strasse (Privat)
   PLZ (Privat)
   Stadt (Privat)
   Land (Privat)

   Telefon (Privat)
   Fax (Privat)

   AIM (Privat)
   ICQ (Privat)
   Jabber (Privat)
   MSN (Privat)
   Yahoo (Privat)

Das Skript als Application speichern:

 
--   csv2vcf v0.4
--    © 2007 by skeeve    (csv2vcf.question.skeeve et xoxy dot net)
--    this Script is under GPL

-- ::::::::::::::::::::::::::::::::::::::::  hohabadu.de  ::::::::::::::::::::::::::::::::::::::::

property VCARD : "BEGIN:VCARD
VERSION:3.0
N:<Nachname>;<Vorname>;<Zweiter Vorname>;<Praefix>;<Suffix>
FN:<Praefix[ ]><Nachname[ ]><Vorname[ ]><Suffix[ ]><Zweiter Vorname>
NICKNAME:<Spitzname>
X-MAIDENNAME:<Geburtsname>
ORG:<Firma>;<Abteilung>
TITLE:<Position>
EMAIL;TYPE=INTERNET,WORK:<E-Mail (Arbeit)>
EMAIL;TYPE=INTERNET,HOME:<E-Mail (Privat)>
URL:<Homepage>
TEL;TYPE=WORK:<Telefon (Arbeit)>
TEL;TYPE=WORK,CELL:<Telefon (Mobil)>
TEL;TYPE=HOME:<Telefon (Privat)>
TEL;TYPE=MAIN:<Telefon (Zentrale)>
TEL;TYPE=HOME,FAX:<Fax (Privat)>
TEL;TYPE=WORK,FAX:<Fax (Arbeit)>
TEL;TYPE=PAGER:<Pager>
ADR;TYPE=WORK:;;<Strasse (Arbeit)>;<Stadt (Arbeit)>;;<PLZ (Arbeit)>;<Land (Arbeit)>
ADR;TYPE=HOME:;;<Strasse (Privat)>;<Stadt (Privat)>;;<PLZ (Privat)>;<Land (Privat)>
BDAY;VALUE=DATE:<Geburtstag>
X-AIM;TYPE=WORK:<AIM (Arbeit)>
X-JABBER;TYPE=WORK:<Jabber (Arbeit)>
X-MSN;TYPE=WORK:<MSN (Arbeit)>
X-YAHOO;TYPE=WORK:<Yahoo (Arbeit)>
X-ICQ;TYPE=WORK:<ICQ (Arbeit)>
X-AIM;TYPE=HOME:<AIM (Privat)>
X-JABBER;TYPE=HOME:<Jabber (Privat)>
X-MSN;TYPE=HOME:<MSN (Privat)>
X-YAHOO;TYPE=HOME:<Yahoo (Privat)>
X-ICQ;TYPE=HOME:<ICQ (Privat)>
END:VCARD"

on run
   tell me to open {choose file with prompt "Bitte eine tabulator-getrennte Datei wählen" without invisibles}
end run

on open this_items
   set fle to first item of this_items
   if (info for fle) is not folder then
      set conversion to convert(fle)
      if conversion is not false then
         tell application "Finder" to open ((POSIX file conversion) as alias)
      end if
   end if
end open

on convert(fle)
   set conversion to do shell script "perl -e " & (quoted form of ("
use strict;
use warnings;
use utf8;

my $VCARD= <<':';
" & VCARD & "
:

open STDERR,'>/dev/console';
print STDERR '-' x 79,qq(\\n);
print STDERR $VCARD;
print STDERR '-' x 79,qq(\\n);


my ($infile)= @ARGV;
my $outfile= $infile;
$outfile=~ s/(\\.[^.]+)?$/.vcf/;
open my $in, '<:utf8', $infile or die \"$!\\n\";
open my $out, '>:encoding(UTF-16)', $outfile or die \"$!\\n\";

$_=<$in>;
tr/\\012\\015//d;

my @column= split /\\t/;
while (<$in>) {
   my %line;
   tr/\\012\\015//d;
   s/([,;])/\\\\$1/g;
   @line{@column}= split /\\t/;
   $_= $VCARD;
   s/<([^>]+?)(?:\\[([^>\\]]+)\\])?>/($line{$1}?$line{$1}.($2||''):'')/ge;
   s/^[^:\\n]+:\\s*\\n//mg;
   next if /^N:;+$/m;
   print $out $_;
}
close $in;
close $out;
print \"OK\\n$outfile\";")) & " " & (quoted form of POSIX path of fle)
   if conversion starts with "OK" then return second paragraph of conversion
   return false
end convert
 Im Scripteditor öffnen
  
Kommentar schreiben



Powered By CMSimple Design By NMuD Top