讀取設置密碼保護的excel文件,有沒有更好的辦法?

大家好,我是Python進階者。

一、前言

前幾天在Python最強王者交流羣【wen】問了一個Python處理Excel加密文件讀取問題。問題如下:

請教:讀取設置了密碼保護的exlce文件,df = pd.read_excel(file,password='12345678') 報錯:got an unexpected keyword argument "password"  目前的解決方法是通過msoffcrypto模塊生成新的文件再進行讀取,有沒有更簡單點的方法呢?

二、實現過程

這裏【隔壁😼山楂】指出:好像都差不多麻煩。

# pip install pandas xlwings,除此之外還要求電腦上有安裝可以打開Excel文件的軟件
import pandas as pd
import xlwings

app = xlwings.App(visible=False, add_book=False)
wb = app.books.open(file, password='12345678')
sheet = wb.sheets[0]
df = sheet['A1'].options(pd.DataFrame, index=False, expand='table').value
app.quit()

後來【瑜亮老師】也給了一個代碼:

import msoffcrypto
import io
import pandas as pd

decrypted = io.BytesIO()

with open("encrypted.xlsx", "rb") as f:
    file = msoffcrypto.OfficeFile(f)
    file.load_key(password="Passw0rd") 
    file.decrypt(decrypted)

df = pd.read_excel(decrypted)
print(df)
@wen 可以試試這個庫

乍一看,好像和粉絲的代碼差不多,其實不同,這裏【巭孬🕷】指出粉絲的代碼是生成新文件再讀取,瑜亮老師的是直接從內存裏面讀取,不用生成新文件。

image.png

順利地解決了粉絲的問題。

如果你也有類似這種Python相關的小問題,歡迎隨時來交流羣學習交流哦,有問必答!

三、總結

大家好,我是Python進階者。這篇文章主要盤點了一個Python處理Excel加密文件讀取的問題,文中針對該問題,給出了具體的解析和代碼實現,幫助粉絲順利解決了問題。

最後感謝粉絲【wen】提出的問題,感謝【隔壁😼山楂】、【瑜亮老師】、【巭孬🕷】給出的思路,感謝【莫生氣】等人蔘與學習交流。

【提問補充】溫馨提示,大家在羣裏提問的時候。可以注意下面幾點:如果涉及到大文件數據,可以數據脫敏後,發點demo數據來(小文件的意思),然後貼點代碼(可以複製的那種),記得發報錯截圖(截全)。代碼不多的話,直接發代碼文字即可,代碼超過50行這樣的話,發個.py文件就行。

image.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章