利用python之phone庫(kù)和openpyxl庫(kù)實(shí)現(xiàn)對(duì)歸屬地的查詢和表格編輯

openpyxl庫(kù)支持新的xlxs等格式的表格讀取修改和增加,是一個(gè)優(yōu)秀excel文件操作的庫(kù)。
此處簡(jiǎn)單介紹如何結(jié)合三方庫(kù)phone對(duì)指定電話號(hào)碼列進(jìn)行歸屬地信息的查詢和增加到excel,其中表格格式和修改位置需要人為修改代碼適配:

from openpyxl import load_workbook
import phone


def get_phone_region(phone_num):
    """
    獲取電話號(hào)碼的歸屬地信息
    :param phone_num: 電話號(hào)碼
    :return: 歸屬信息
    """
    info = phone.Phone().find(phone_num)
    if info is not None:
        region = info['province'] + ' ' + info['city'] + ' ' + info['phone_type']
    else:
        region = '該號(hào)碼暫未查詢到歸屬地,請(qǐng)檢查號(hào)碼正確性或手動(dòng)查詢!'
    return region


def add_region_in_excel(excel_path, sheet_name):
    """
    添加歸屬地和運(yùn)營(yíng)商信息到excel文件中
    :param excel_path: excel表格的路徑名字
    :param sheet_name: sheet的名字
    :return: 無(wú)
    """
    excel = load_workbook(excel_path)   # 讀取表格
    if not sheet_name:
        sheet = excel.get_active_sheet()   # 讀取當(dāng)前激活的頁(yè)簽
    else:
        sheet = excel.get_sheet_by_name(sheet_name)   # 讀取指定名頁(yè)簽
    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列當(dāng)前行單元格對(duì)象
        phone_num = phone_data.value.strip()   # 去除號(hào)碼前后空格,得到號(hào)碼字符串
        phone_region = get_phone_region(phone_num)   # 獲得當(dāng)前號(hào)碼歸屬地
        print('正在向D列第' + str(index) + '行(對(duì)應(yīng)號(hào)碼為' + phone_num + ')寫入歸屬地信息: ' + phone_region)   # 打印出行數(shù),號(hào)碼,地區(qū)信息
        sheet['D%s' % index] = phone_region   # 將歸屬地內(nèi)容寫入D列對(duì)應(yīng)行
    excel.save(excel_path)


if __name__ == '__main__':
    try:
        excel_path = input('請(qǐng)輸入包含excel文件名的完整路徑(按enter確認(rèn)):')
        sheet_name = input('請(qǐng)輸入你要操作的sheet名(如果僅有一個(gè)sheet,請(qǐng)直接按enter):')
        if sheet_name.strip() == '':
            sheet_name = None
        add_region_in_excel(excel_path, sheet_name)
    except Exception as e:
        print('[ERROR]發(fā)生錯(cuò)誤:%s' % e)

工作簿的增加列信息效果如下:


12080605-7c45757dee66c8eb.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容