<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
今天教大家利用Python製作本地Excel的查詢與生成的程式
製作一個程式 有一個簡單的查詢入口 實現Excel的查詢與生成
1開啟一個exe 彈出一個介面
2有一個查詢 卡號 點選查詢
3下方展示查詢的結果 同時將這個查詢的結果 追加到一個新的結果Excel檔案裡
4新的結果Excel檔案 格式和原始檔格式相同 但是每次都在最後追加
今天教大家利用Python製作本地Excel的查詢與生成的程式
1.2 匯入模組並讀取Excel檔案
等會要用的模組有:pandas、os、xlwt和uuid
用import匯入的程式碼:
import pandas, os, xlwt, uuid
匯入好後,就要讀取Excel檔案了。讀取Excel要用到pandas的read_excel函數。
try: exl = pandas.read_excel(aim_path) except: print('找不到檔案!請檢查一下檔案路徑或檔案是否存在') os._exit(0)
剛剛匯入os模組就是為了做異常捕獲找不到檔案時的退出。
為了方便後面查詢,要把DataFrame的索引(index)設為查詢輸入的卡號。接著,輸出以卡號為索引的DF,以便使用者查詢。最後,就開始迴圈輸入了。
exl.set_index('卡號', inplace = True) print(f'{exl}n') while 1: try: idx = input('卡號(輸入「退出」即可退出):') if idx == '退出': os._exit(0)
查詢用dataframe.loc[index]來完成,最後輸出返回的Series。為了避免使用者輸入非卡號資訊,就又加了異常捕獲。
res = exl.loc[idx] print(f'n{res}n') except KeyError: print('你的卡號可能輸錯了!我找不到這個卡號的人哦~n') continue except: print('有些錯誤發生了!n') continue
3.1 讀取或新建Excel
3.1.1 讀取
讀取跟上面一樣,用read_excel
try: res_exl = pandas.read_excel(res_path)
3.1.2 新建Workbook和Sheet
現在輪到xlwt模組大展身手啦~ 用Workbook函數來新建Workbook;用add_sheet函數新增Sheet
except: workbook = xlwt.Workbook() sheet = workbook.add_sheet('new') col = 0
3.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 追加結果
首先,把結果res變數設定成列表型別。然後,在這個列表裡面新增結果沒有的卡號。最後把這個列表設定成一個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 ) )
現在建好了Series,準備追加了。追加完後還要儲存這個Excel。
res_exl.loc[str(uuid.uuid1())] = res_series try: res_exl.to_excel(res_path, index = False) except: print('寫入失敗')
這裡用了uuid.uuid1來隨機產生索引,避免重複而修改其它人的值。最後幾行就是儲存的操作,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('有些錯誤發生了!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('寫入失敗')
到此這篇關於利用Python製作本地Excel的查詢與生成的程式的文章就介紹到這了,更多相關PythonExcel查詢生成的程式內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45