openpyxl庫支持新的xlxs等格式的表格讀取修改和增加勾缭,是一個優(yōu)秀excel文件操作的庫。
此處簡單介紹如何結(jié)合三方庫phone對指定電話號碼列進行歸屬地信息的查詢和增加到excel闺骚,其中表格格式和修改位置需要人為修改代碼適配:
from openpyxl import load_workbook
import phone
def get_phone_region(phone_num):
"""
獲取電話號碼的歸屬地信息
:param phone_num: 電話號碼
:return: 歸屬信息
"""
info = phone.Phone().find(phone_num)
if info is not None:
region = info['province'] + ' ' + info['city'] + ' ' + info['phone_type']
else:
region = '該號碼暫未查詢到歸屬地,請檢查號碼正確性或手動查詢瘸右!'
return region
def add_region_in_excel(excel_path, sheet_name):
"""
添加歸屬地和運營商信息到excel文件中
:param excel_path: excel表格的路徑名字
:param sheet_name: sheet的名字
:return: 無
"""
excel = load_workbook(excel_path) # 讀取表格
if not sheet_name:
sheet = excel.get_active_sheet() # 讀取當前激活的頁簽
else:
sheet = excel.get_sheet_by_name(sheet_name) # 讀取指定名頁簽
phone_col = sheet['C'] # 拿到C列
for index in range(2, len(phone_col) + 1): # 從C列第2行開始循環(huán)
phone_data = sheet['C%s' % index] # 拿到C列當前行單元格對象
phone_num = phone_data.value.strip() # 去除號碼前后空格,得到號碼字符串
phone_region = get_phone_region(phone_num) # 獲得當前號碼歸屬地
print('正在向D列第' + str(index) + '行(對應(yīng)號碼為' + phone_num + ')寫入歸屬地信息: ' + phone_region) # 打印出行數(shù)岩齿,號碼太颤,地區(qū)信息
sheet['D%s' % index] = phone_region # 將歸屬地內(nèi)容寫入D列對應(yīng)行
excel.save(excel_path)
if __name__ == '__main__':
try:
excel_path = input('請輸入包含excel文件名的完整路徑(按enter確認):')
sheet_name = input('請輸入你要操作的sheet名(如果僅有一個sheet,請直接按enter):')
if sheet_name.strip() == '':
sheet_name = None
add_region_in_excel(excel_path, sheet_name)
except Exception as e:
print('[ERROR]發(fā)生錯誤:%s' % e)
工作簿的增加列信息效果如下:
12080605-7c45757dee66c8eb.png