利用Python制作本地Excel的查詢與生成的程序問題
前言
今天教大家利用Python制作本地Excel的查詢與生成的程序
需求
制作一個程序 有一個簡單的查詢?nèi)肟?實現(xiàn)Excel的查詢與生成
實驗步驟
1打開一個exe 彈出一個界面
2有一個查詢 卡號 點擊查詢
3下方展示查詢的結(jié)果 同時將這個查詢的結(jié)果 追加到一個新的結(jié)果Excel文件里
4新的結(jié)果Excel文件 格式和源文件格式相同 但是每次都在最后追加
今天教大家利用Python制作本地Excel的查詢與生成的程序
Excel預覽圖片
1.2 導入模塊并讀取Excel文件
等會要用的模塊有:pandas、os、xlwt和uuid
用import導入的代碼:
import pandas, os, xlwt, uuid
導入好后,就要讀取Excel文件了。讀取Excel要用到pandas的read_excel函數(shù)。
try:
exl = pandas.read_excel(aim_path)
except:
print('找不到文件!請檢查一下文件路徑或文件是否存在')
os._exit(0)剛剛導入os模塊就是為了做異常捕獲找不到文件時的退出。
查詢
2.1 Excel的索引與輸入
為了方便后面查詢,要把DataFrame的索引(index)設(shè)為查詢輸入的卡號。接著,輸出以卡號為索引的DF,以便用戶查詢。最后,就開始循環(huán)輸入了。
exl.set_index('卡號', inplace = True)
print(f'{exl}\n')
while 1:
try:
idx = input('卡號(輸入“退出”即可退出):')
if idx == '退出':
os._exit(0)2.2 開始查詢、豐富程序
查詢用dataframe.loc[index]來完成,最后輸出返回的Series。為了避免用戶輸入非卡號信息,就又加了異常捕獲。
res = exl.loc[idx]
print(f'\n{res}\n')
except KeyError:
print('你的卡號可能輸錯了!我找不到這個卡號的人哦~\n')
continue
except:
print('有些錯誤發(fā)生了!\n')
continue追加查詢結(jié)果到Excel
3.1 讀取或新建Excel
3.1.1 讀取
讀取跟上面一樣,用read_excel
try:
res_exl = pandas.read_excel(res_path)3.1.2 新建Workbook和Sheet
現(xiàn)在輪到xlwt模塊大展身手啦~ 用Workbook函數(shù)來新建Workbook;用add_sheet函數(shù)新增Sheet
except:
workbook = xlwt.Workbook()
sheet = workbook.add_sheet('new')
col = 03.1.2 寫入Column
在Column的位置,需要填入查詢的Excel的列索引,用
list(pandas.read_excel(aim_path).columns.values)
可以獲取到。然后把列索引以xlwt.write填進去,最后把DF保存再讀取這個Excel。
for i in list(pandas.read_excel(aim_path).columns.values):
sheet.write(0, col, i)
col += 1
workbook.save(res_path)
res_exl = pandas.read_excel(res_path)3.2 追加結(jié)果
首先,把結(jié)果res變量設(shè)置成列表類型。然后,在這個列表里面新增結(jié)果沒有的卡號。最后把這個列表設(shè)置成一個Series(索引為查詢的Excel的列索引)。
res_series_data = list(res)
res_series_data.insert(2, idx)
res_series = pandas.Series(
res_series_data,
index = list(
pandas.read_excel(aim_path).columns.values
)
)現(xiàn)在建好了Series,準備追加了。追加完后還要保存這個Excel。
res_exl.loc[str(uuid.uuid1())] = res_series
try:
res_exl.to_excel(res_path, index = False)
except:
print('寫入失敗')這里用了uuid.uuid1來隨機產(chǎn)生索引,避免重復而修改其它人的值。最后幾行就是保存的操作,python index = False的意思就是把索引隱藏掉了。
完整代碼
try:
exl = pandas.read_excel(aim_path)
except:
print('找不到文件!請檢查一下文件路徑或文件是否存在')
os._exit(0)
exl.set_index('卡號', inplace = True)
print(f'{exl}\n')
while 1:
try:
idx = input('卡號(輸入“退出”即可退出):')
if idx == '退出':
os._exit(0)
res = exl.loc[idx]
print(f'\n{res}\n')
except KeyError:
print('你的卡號可能輸錯了!我找不到這個卡號的人哦~\n')
continue
except:
print('有些錯誤發(fā)生了!\n')
continue
try:
res_exl = pandas.read_excel(res_path)
except:
workbook = xlwt.Workbook()
sheet = workbook.add_sheet('new')
col = 0
for i in list(pandas.read_excel(aim_path).columns.values):
sheet.write(0, col, i)
col += 1
workbook.save(res_path)
res_exl = pandas.read_excel(res_path)
res_series_data = list(res)
res_series_data.insert(2, idx)
res_series = pandas.Series(
res_series_data,
index = list(
pandas.read_excel(aim_path).columns.values
)
)
res_exl.loc[str(uuid.uuid1())] = res_series
try:
res_exl.to_excel(res_path, index = False)
except:
print('寫入失敗')到此這篇關(guān)于利用Python制作本地Excel的查詢與生成的程序的文章就介紹到這了,更多相關(guān)PythonExcel查詢生成的程序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談selenium如何應(yīng)對網(wǎng)頁內(nèi)容需要鼠標滾動加載的問題
這篇文章主要介紹了淺談selenium如何應(yīng)對網(wǎng)頁內(nèi)容需要鼠標滾動加載的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03
Python操作Excel文件的11種方法(全網(wǎng)最全)
在日常工作或開發(fā)過程中,Excel文件作為一種常用的數(shù)據(jù)存儲格式,其高效便捷的數(shù)據(jù)處理能力被廣泛應(yīng)用于數(shù)據(jù)統(tǒng)計、數(shù)據(jù)分析等領(lǐng)域,Python作為一種強大的編程語言,提供了豐富的庫支持來實現(xiàn)對Excel文件的操作,本篇將詳細介紹如何使用Python來操作Excel文件2025-03-03
使用python實現(xiàn)excel的Vlookup功能
這篇文章主要介紹了使用python實現(xiàn)excel的Vlookup功能,當我們想要查找的數(shù)據(jù)量較大時,這時則有請我們的主角VLookup函數(shù)出場,那么如何用python實現(xiàn)VLookup呢,需要的朋友可以參考下2023-04-04
python實現(xiàn)遠程通過網(wǎng)絡(luò)郵件控制計算機重啟或關(guān)機
這篇文章主要為大家詳細介紹了python實現(xiàn)遠程通過網(wǎng)絡(luò)郵件控制計算機重啟或關(guān)機,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-02-02
python實現(xiàn)skywalking的trace模塊過濾和報警(實例代碼)
Skywalking可以對鏈路追蹤到數(shù)據(jù)進行告警規(guī)則配置,例如響應(yīng)時間、響應(yīng)百分比等。發(fā)送警告通過調(diào)用webhook接口完成。webhook接口用戶可以自定義。本文給大家介紹python實現(xiàn)skywalking的trace模塊過濾和報警,感興趣的朋友跟隨小編一起看看吧2021-12-12
pytorch實現(xiàn)Tensor變量之間的轉(zhuǎn)換
今天小編就為大家分享一篇pytorch實現(xiàn)Tensor變量之間的轉(zhuǎn)換,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02

