用python讀寫excel的方法
- 2020 年 1 月 10 日
- 筆記
這篇文章主要介紹了用python讀寫excel的方法,涉及xlrd模組與xlwt模組的應用,具有一定的學習借鑒價值,需要的朋友可以參考下
本文實例講述了用python讀寫excel的方法。分享給大家供大家參考。具體如下:
最近需要從多個excel表裡面用各種方式整理一些數據,雖然說原來用過java做這類事情,但是由於最近在學python,所以當然就決定用python嘗試一下了。發現python果然簡潔很多。這裡簡單記錄一下。(由於是用到什麼學什麼,所以不算太深入,高手勿噴,歡迎指導)
一、讀excel表
讀excel要用到xlrd模組,官網安裝(http://pypi.python.org/pypi/xlrd)。然後就可以跟著裡面的例子稍微試一下就知道怎麼用了。大概的流程是這樣的:
1、導入模組
import xlrd
2、打開Excel文件讀取數據
data = xlrd.open_workbook('excel.xls')
3、獲取一個工作表
① table = data.sheets()[0] #通過索引順序獲取 ② table = data.sheet_by_index(0) #通過索引順序獲取 ③ table = data.sheet_by_name(u'Sheet1')#通過名稱獲取 4、獲取整行和整列的值(返回數組)
table.row_values(i) table.col_values(i)
5、獲取行數和列數
table.nrows table.ncols
6、獲取單元格
table.cell(0,0).value table.cell(2,3).value
就我自己使用的時候覺得還是獲取cell最有用,這就相當於是給了你一個二維數組,餘下你就可以想怎麼干就怎麼幹了。得益於這個十分好用的庫程式碼很是簡潔。但是還是有若干坑的存在導致話了一定時間探索。現在列出來供後人參考吧:
1、首先就是我的統計是根據姓名統計各個表中的資訊的,但是調試發現不同的表中各個名字貌似不能夠匹配,開始懷疑過編碼問題,不過後來發現是因為 空格。因為在excel中輸入的時候很可能會順手在一些名字後面加上幾個空格或是tab鍵,這樣看起來沒什麼差別,但是程式處理的時候這就是兩個完全 不同的串了。我的解決方法是給每個獲取的字元串都加上strip()處理一下。效果良好
2、還是字元串的匹配,在判斷某個單元格中的字元串(中文)是否等於我所給出的的時候發現無法匹配,並且各種unicode也不太奏效,百度過一些解決 方案,但是都比較複雜或是沒用。最後我採用了一個比較變通的方式:直接從excel中獲取我想要的值再進行比較,效果是不錯就是通用行不太好,個 呢不能問題還沒解決。
二、寫excel表
寫excel表要用到xlwt模組,官網下載(http://pypi.python.org/pypi/xlwt)。大致使用流程如下:
1、導入模組
複製程式碼程式碼如下:
import xlwt
2、創建workbook(其實就是excel,後來保存一下就行)
複製程式碼程式碼如下:
workbook = xlwt.Workbook(encoding = 'ascii')
3、創建表
複製程式碼程式碼如下:
worksheet = workbook.add_sheet('My Worksheet')
4、往單元格內寫入內容
複製程式碼程式碼如下:
worksheet.write(0, 0, label = 'Row 0, Column 0 Value')
5、保存
複製程式碼程式碼如下:
workbook.save('Excel_Workbook.xls')
由於我的需求比較簡單,所以這上面沒遇到什麼問題,唯一的就是建議還是用ascii編碼,不然可能會有一些詭異的現象。