将Excel文件(xlsx)中的联系人和电话转换成vcard文件(.vcf),并用pyinstaller打包发布

将Excel文件(xlsx)中的联系人和电话转换成vcard文件(.vcf),并用pyinstaller打包发布

效果:
将一个Excel表格和该脚本放入同一个文件夹下,运行脚本,输入感兴趣的联系人所在行序号,直接生成vCard文件

步骤:

  1. 获取同文件夹下的绝对路径(用于pyinstaller打包)
  2. 读取绝对路径下的xlsx文件数据(要input的:联系人和电话所在列数,以及要输出的数据行数)
  3. 套用vcf格式,在绝对路径下写入vcf文件

坑很多:

  1. Mac上打的包在win上运行不成,这一点是改变不了的
  2. 获取绝对路径是一个很难的活,因为绝对路径要在打包后生效,开始我用filedir=file,在idle中可以获取到路径,打包后exe文件获取失败,最后在这位大神博客中找到了答案link
  3. 编一个程序很容易,编一个用户友好的程序很难,因为要考虑所有用后可能遇到的情况。。。
from openpyxl import load_workbook
import time
import os
import sys


def read_xlsx(path):
	''''''
	#return [[changed_name,phone_num],...] list
    
	excel = load_workbook(path) 
    #读表操作:
	# sheet_names = excel.get_sheet_names()#方法得到工作簿的所有工作表
	# print(sheet_names)
	table = excel.active
	print('将对如下sheet进行读取联系人:',table.title,'.如果有误请保存一下表格文件并重启该程序')
    
	result=[]

	while True:
		try:
			in_=input('请输入联系人姓名和电话所在列的数字,逗号分隔,回车确认')
			if ',' in in_:
				c_name,c_phone=in_.split(',')
			else:
				c_name,c_phone=in_.spl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值