import pandas as pd
import tkinter as tk
import tkinter.font as tkFont
from tkinter.filedialog import askdirectory
import tkinter.messagebox
import tkinter.filedialog
winxlsx2vcf = tk.Tk()
winxlsx2vcf.title('批量生成联系人导入文件')
sw = winxlsx2vcf.winfo_screenwidth()
sh = winxlsx2vcf.winfo_screenheight()
ww = 600
wh = 180
x = (sw - ww) / 2
y = (sh - wh) / 2
winxlsx2vcf.geometry("%dx%d+%d+%d" % (ww, wh, x, y))
winxlsx2vcf.resizable(width=False, height=False)
fontStyle = tkFont.Font(family="Lucida Grande", size=15)
tk.Label(winxlsx2vcf, text="批量生成联系人导入文件", font=fontStyle).pack(pady=3)
def askd1():
global pathFile
pathFile = tkinter.filedialog.askopenfilename(title='打开表格', filetypes=[("xlsx", ".xlsx"), ("xls", ".xls")])
path001.set(pathFile)
print(pathFile)
def askd2():
global pathDownload
pathDownload = askdirectory() + "/"
path2001.set(pathDownload)
print(pathDownload)
frame01 = tk.Frame(winxlsx2vcf, padx=3, pady=3)
frame01.pack()
frame_left01 = tk.Frame(frame01)
frame_right01 = tk.Frame(frame01)
frame_left01.pack(side='left')
frame_right01.pack(side='right')
path001 = tk.StringVar()
path2001 = tk.StringVar()
e001 = tk.Entry(frame_left01, textvariable=path001, width=50).pack(padx=5, pady=10)
e002 = tk.Entry(frame_left01, textvariable=path2001, width=50).pack(padx=5, pady=10)
tk.Button(frame_right01, text='选择文件', relief=tk.GROOVE, font=fontStyle, width=18, height=1,
command=lambda: askd1()).pack(padx=3, pady=3)
tk.Button(frame_right01, text='选择保存的文件夹', relief=tk.RIDGE, font=fontStyle, width=18, height=1,
command=lambda: askd2()).pack(padx=3, pady=3)
tk.Button(winxlsx2vcf, text='开始转换', relief=tk.RIDGE, font=fontStyle, width=18, height=1,
command=lambda: excel(pathFile, pathDownload)).pack(padx=3, pady=3)
def excel(pathFile, pathDownload):
cc = pathFile.endswith(".xls")
if cc:
df = pd.read_excel(pathFile, usecols=[0, 1])
else:
df = pd.read_excel(pathFile, usecols=[0, 1], engine='openpyxl')
df_list = df.values.tolist()
vaf = ""
for t1 in df_list:
vaf = vaf + f"BEGIN:VCARD\nVERSION:3.0\nN:;{t1[0]};;;\nFN:{t1[0]}\nTEL;TYPE=CELL:{t1[1]}\nEND:VCARD\n"
file = open(f'{pathDownload}/001.vcf', 'w')
file.write(vaf)
file.close()
tkinter.messagebox.showinfo(title='提示', message="转换成功!")
winxlsx2vcf.mainloop()