Nat*_*han 2 python xlsx openpyxl
我正在尝试从电子邮件中读取附加的 .xlsx 文件。
我已经能够检索具有email.message.Messagetype 一部分的类型application/vnd.openxmlformats-officedocument.spreadsheetml.sheet。我应该能够阅读它使用
file = part.get_payload(decode=True)
Run Code Online (Sandbox Code Playgroud)
这给了我一个以字节开头的对象
b'PK\x03\x04\x14\x00\x06\x00\x08\x00\x00\x00!\x00\x93\xe11\xb6\x93\x01\x00\x003\x07\x00\x00\x13\x00\
Run Code Online (Sandbox Code Playgroud)
我想使用以下方法将其解析为字典
io.BytesIO(gzip.decompress(file))
Run Code Online (Sandbox Code Playgroud)
对于某些带有 .csv 压缩文件的电子邮件,这有效,但 .xlsx 文件无法使用此方法打开。我在网上查过,但我找不到任何解决方案。任何帮助将不胜感激。
Excel 文件以压缩形式出现,并在加载到 Excel 本身时自动解压缩。
该openpyxl库能够直接加载这些 Excel 文件,例如:
import openpyxl
import io
xlsx = io.BytesIO(part.get_payload(decode=True))
wb = openpyxl.load_workbook(xlsx)
ws = wb['Sheet1']
for cells in ws.iter_rows():
print([cell.value for cell in cells])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2832 次 |
| 最近记录: |