最近需要將excel的數據導入到mysql中,用java寫比較麻煩,用python導入操作更加方便,對office的版本兼容性很強。
依賴包
import xlrd
具體方法及相關解釋
def readExcel(path):
#爲文件地址xls和xlsx均可以
try:
# 獲取excel工作簿
book = xlrd.open_workbook(path)
print(sys.getsizeof(book))
return book
except Exception as e:
print(e)
print("open excel file failed!")
#獲取excel所有sheet表名
sheets = book.sheet_names()
# 通過表名打開表
for sheet in sheets:
sh = book.sheet_by_name(sheet)
#打開表後獲取所有行列
rows = sh.nrows
#循環遍歷獲取每行的值
for row in rows:
# for row in range(1,rows) 從第二行開始獲取對應一些有標題情況
#這裏的row_data 是個list 對應該行所有的列值
row_data = sh.row_values(row)
注意
在實際使用過程中,會發現python的xlrd可以直接讀取xls或者xlsx,但是會遇到一種僞xls文件是無法讀取的,這種僞xls一般是xml轉的xls 或者是html 傳的xls,一般打開會顯示擴展名與文件不符,是否繼續打開,你用nodepad++ 打開得到的是如圖一信息,而不是圖二
圖1 僞xls文件
圖2 正經的xls文件
目前針對這種情況,網上嘗試了一下尋找解決辦法,但是基本行不通,所以我的辦法就是隻能手動打開僞xls文件,另存爲真正的xls文件,如果有好辦法的夥伴們,可以告訴我一下。