''' BEGIN:VCARD BDAY;VALUE=DATE:1963-09-21 VERSION:3.0 N:Stenerson;Derik FN:Derik Stenerson ORG:Microsoft Corporation ADR;TYPE=WORK,POSTAL,PARCEL:;Suite 101;38777 West Six Mile Road;Livonia;MI;48152;USA TEL;TYPE=WORK,MSG:+1-425-936-5522 TEL;TYPE=WORK,FAX:+1-425-936-7329 EMAIL;TYPE=INTERNET:deriks@Microsoft.com END:VCARD ''' import xlrd import pandas as pd import os file= 'ADRESSEN2011.xls' #If your excel file in same directory with python file u can use it excelfile= pd.ExcelFile(file) column = excelfile.parse('Bakkersdijk') begin = "BEGIN:VCARD\nVERSION:4.0" class Vcard(): def __init__(self, firstname, lastname, tussen, telephone, street, postal, city, country, email, DIV): if(tussen == "nan"): tussen = "" if(telephone == "nan"): telephone = "" if(city == "nan"): city = "" if(firstname == "nan"): firstname = "" if(telephone == "." or telephone == "nan" or telephone == "Zuid Afrika"): telephone = "" if(DIV == "nan"): DIV = "" self.N = "N:{};{};;;\n".format(lastname, firstname) if(tussen != ""): self.FN = "FN:{} {} {}\n".format(firstname, tussen, lastname) else: self.FN = "FN:{} {}\n".format(firstname, lastname) self.TEL = "TEL;TYPE=HOME,MSG:{}\n".format(telephone) self.ADDR = "ADR;TYPE=WORK,POSTAL,PARCEL:;;{};{};{};{};{}\n".format(street, city, DIV, postal, country) #self.ADDR = self.ADDR + "{};{};{};{}\n".format(street, postal, city, country) self.ORG ="ORG:Friends\n" self.TITLE="TITLE:\n" def getVcard(self): return "BEGIN:VCARD\nVERSION:3.0\n{}{}{}{}{}END:VCARD\n".format(self.N, self.FN, self.ORG, self.TEL,self.ADDR) cards = "" for i in range(len(column)): ''' N:Gump;Forrest;;Mr.; FN:Sheri Nom TEL;TYPE#work,voice;VALUE#uri:tel:+1-111-555-1212 TEL;TYPE#home,voice;VALUE#uri:tel:+1-404-555-1212 ADR;TYPE#HOME;LABEL#"42 Plantation St.\nBaytown\, LA 30314\nUnited States of America":;;42 Plantation St.;Baytown;LA;30314;United States of America EMAIL:sherinnom@example.com ''' fbase = str(column["VOORNAMEN"][i]) fnames = str(column["VOORNAMEN"][i]).split(" ") #fnames.append(str(column["VOORNAMEN"][i]).split("&")) if("fam" in fbase): fnames = { "Familie" } if("&" in fbase): fnames = str(column["VOORNAMEN"][i]).split("&") #check for bad lastnames because of identation lname = str(column["ACHTERNAAM"][i]) lnamesplit = str(column["ACHTERNAAM"][i]).split(" ") if(len(lnamesplit) > 1): lname = lnamesplit[len(lnamesplit)-1] for name in fnames: if(name == "en" or name == "&" or name == "mw" or name == "fam,"): continue if(lname == "nan"): continue if(name == "fam"): name = "Familie" fname = name lname = lname tussen = str(column["tussen"][i]) straat_num = str(column["STRAAT_NUM"][i]) postal = str(column["POSTCODE"][i]) city = str(column["_PLAATS"][i]) telephone = str(column["TELEFOON"][i]) DIV = str(column["DIV"][i]) country = "Netherlands" if(DIV != "nan"): country = "Canada" card = Vcard(fname, lname, tussen, telephone, straat_num, postal, city, country, "", DIV) cards += card.getVcard() if("ruithof" in lname): print(card.getVcard()) #print(cards) #break file = open("outputcards.vcf", "a") file.write(cards) file.close() #N="{};{}".format(str(column["ACHTERNAAM"][i]), str(column["VOORNAMEN"][i])) #print(N) #if(str(column["Phone"][i])!="nan"):