在實際應用中,經常會遇到需要讀取或導入Excel文件的情況,那麼在Python中如何讀取 Excel 表格呢?
本文中介紹如何使用Tablib庫來導入Excel文件。
Tablib是一個表格數據集庫,可用于導入、導出和操作表格數據集,Tablib支持大部分流行的表格數據(文件)格式:
cli |
csv |
dbf |
df (DataFrame) |
html |
jira |
json |
latex |
ods |
rst |
tsv |
xls |
xlsx |
yaml |
其中,xls和xlsx就是Excel文件格式。
我們看看Tablib的使用方法。
安裝執行命令
pip install “tablib[all]”
安裝Tablib及所有支持格式的依賴項。
如果隻需支持xls,xlsx格式,則使用下述命令:
pip install "tablib[xls,xlsx]"
讀取Excel文件Tablib的核心是Dataset對象,我們通過創建Databook或Dataset來實現對數據表的讀取。我們使用一個示例Excel文件,該文件隻有一個工作表,表格内容如下:
demo.xlsx文件
下面的代碼對該文件進行讀取。
from tablib import Dataset,Databook
#打開Xcel文件,注意xlsx的打開方式為字節方式”rb“; CSV等類型的文件則采用文本方式打開。
filepath = "demo.xlsx"
f = open(filepath,"rb")
multi_sheet = False
#對于多工作表的Excel表格,使用Databook讀取工作表
if multi_sheet:
databook = Databook().load(f.read(),headers=False,format="xlsx")
datasets = databook.sheets()
#獲得第2個工作表
dataset = datasets[1]
else:#對于隻有一個工作表的Excel表格,可直接使用Dataset讀取dataset對象
dataset = Dataset().load(f.read(),headers=False,format="xlsx")
f.close()
print(dataset)
在上述代碼中,使用open打開Excel文件,調用f.read()作為輸入流傳遞給Dataset對象讀取。需要注意的是xlsx文件的打開方式為字節方式"rb"; 而CSV等文本類型的文件則采用文本方式打開。
上述代碼的輸出結果如下:
簡單的表格示例|None|None|None
None |None|None|None
姓名 |年齡 |身高 |體重
張三 |18 |178 |68
李四 |20 |177 |65
王五 |22 |176 |70
上面代碼中隻是取到了數據,還需要對數據進行一些處理,包括設置表頭、删除非标準數據行等。
#接續上面的代碼
#設置表頭和标題
dataset.title = dataset[0]
dataset.headers = dataset[2]
#前3行不是數據,删除。
del dataset[:3]
print(dataset)
輸出結果:
姓名|年齡|身高 |體重
--|--|---|--
張三|18|178|68
李四|20|177|65
王五|22|176|70
Dataset對象設置了表頭之後,我們就可以按列名獲取數據了。
#打印‘姓名’列
print(dataset["姓名"])
輸出結果:
['張三', '李四', '王五']
以上代碼在Python3.7運行通過。
,