用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編碼,不然可能會有一些詭異的現象。