1. 程式人生 > >Python操作excel的幾種方式--xlrd、xlwt、openpyxl

Python操作excel的幾種方式--xlrd、xlwt、openpyxl

釋出時間:2016-05-13, 17:54:19

最後更新:2016-05-13, 21:29:30


在處理excel資料時發現了xlwt的侷限性–不能寫入超過65535行、256列的資料(因為它只支援Excel 2003及之前的版本,在這些版本的Excel中行數和列數有此限制),這對於實際應用還是不夠的。為此經過一番尋找發現了一個支援07/10/13版本Excel的openpyxl,雖然功能很強大,但是操作起來感覺沒有xlwt方便。下面分別說下幾個模組的常用操作。

xlrd

xlrd是用來從Excel中讀寫資料的,但我平常只用它進行讀操作,寫操作會遇到些問題。用xlrd進行讀取比較方便,流程和平常手動操作Excel一樣,開啟工作簿(Workbook),選擇工作表(sheets),然後操作單元格(cell)。下面舉個例子,例如要開啟當前目錄下名為”data.xlsx”的Excel檔案,選擇第一張工作表,然後讀取第一行的全部內容並打印出來。Python程式碼如下:

1
2
3
4
5
6
7
8
9
10
11
#開啟excel檔案
data=xlrd.open_workbook('data.xlsx')     
#獲取第一張工作表(通過索引的方式)
table=data.sheets()[0] 
#data_list用來存放資料
data_list=[]    
#將table中第一行的資料讀取並新增到data_list中
data_list.extend(table.row_values(0))
#打印出第一行的全部資料
for item in data_list:
    print item

上面的程式碼中讀取一行用table.row_values(number),類似的讀取一列用table.column_values(number),其中number為行索引,在xlrd中行和列都是從0開始索引的,因此Excel中最左上角的單元格A1是第0行第0列。
xlrd中讀取某個單元格用table.cell(row,col)即可,其中row和col分別是單元格對應的行和列。
下面簡單歸納一下xlrd的用法

xlrd用法總結

  • 開啟Excel工作簿

    1
    
    data=xlrd.open_workbook(filename)
    
  • 檢視工作簿中所有sheet的名稱

    1
    
    data.sheet_names()
    
  • 選擇某一個工作表(通過索引或表名稱)

    1
    2
    3
    4
    5
    6
    7
    8
    
    #獲取第一個工作表
    table=data.sheets()[0]
    
    #通過索引獲取第一個工作表
    table=data.sheet_by_index(0)
    
    #通過表名稱選擇工作表
    table=data.sheet_by_name(u'哈哈')
  • 獲取表格的行數和列數

    1
    2
    
    nrows=table.nrows
    ncols=table.ncols
    
  • 獲取整行和整列的值

    1
    2
    
    table.row_values(number)
    table.column_values(number)
    
  • 通過迴圈讀取表格的所有行

    1
    2
    
    for rownum in xrange(table.nrows):
        print table.row_values(rownum)
    
  • 獲取單元格的值

    1
    2
    3
    4
    5
    
    cell_A1=table.row(0)[0].value
    #或者像下面這樣
    cell_A1=table.cell(0,0).value
    #或者像下面這樣通過列索引
    cell_A1=table.col(0)[0].value
    

寫操作自己很少用,所以就不歸納了。

xlwt

如果說xlrd不是一個單純的Reader(如果把xlrd中的後兩個字元看成Reader,那麼xlwt後兩個字元類似看成Writer),那麼xlwt就是一個純粹的Writer了,因為它只能對Excel進行寫操作。xlwt和xlrd不光名字像,連很多函式和操作格式也是完全相同。下面簡要歸納一下常用操作。

xlwt常用操作

新建一個Excel檔案(只能通過新建寫入)

1
data=xlwt.Workbook()

新建一個工作表

1
table=data.add_sheet('name')

寫入資料到A1單元格

1
table.write(0,0,u'呵呵')

注意:如果對同一個單元格重複操作,會引發overwrite Exception,想要取消該功能,需要在新增工作表時指定為可覆蓋,像下面這樣

1
table=data.add_sheet('name',cell_overwrite_ok=True)

儲存檔案

1
data.save('test.xls')

這裡只能儲存副檔名為xls的,xlsx的格式不支援

xlwt支援一定的樣式,操作如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

  
 

    
Java執行Python指令碼的方式

由於在專案需要執行Python,找尋相關資料,總結出以下幾種方式: 直接執行Python指令碼程式碼     引用 org.python包 1 PythonInterpreter interpreter = new PythonInterpreter(); 2 interpreter.

python常用的字串替換函式stripreplacesub

#!/usr/bin/env python # coding:utf-8 import re ''' 功能:對常見的幾種字串處理函式進行測試使用學習 Author:沂水寒城 ''' def str_test(): str_list=['We are family!!!', '00 11 2

pythonexcel方式

xlrd模組讀excel import xlrd data = xlrd.open_workbook("window regulator.xlsx") #開啟excel table = data.sheet_by_name("Sheet2")#讀sheet nrows

Java的jdbc使用addBatch進行批處理操作方式

方式一、批量執行預定義模式的SQL public static void exeBatch(Connection conn) { try { String sql = "insert into t_example (code, name) values (?,?)";

日期格式化操作方式

由於DateFormat是非執行緒安全的,因此在多執行緒併發情況下日期格式化時需要特別注意。執行緒不安全的處理方式private static final DateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH

Android隨筆之——模擬按鍵操作方式

1 package com.lsj.keyboardsample; 2 3 import android.app.Activity; 4 import android.app.Instrumentation; 5 import android.os.Bundle; 6 import andro

JAVA構造物件的方式(構建器構造器)

大家好,我是烤鴨:    今天說一下初始化物件的幾種方式:        1.    多引數構造器        2.    構建器        3.    構造器後 + get/set方法舉個例子:    這裡有個機構entity,提供一個預設構造器package com

C#執行非同步操作方式比較和總結

原文地址:http://www.cnblogs.com/durow/p/4826653.html 轉載此文的目的就是想讓自己記住曾經尋找過這些資料 感謝這位博主的無私奉獻 0x00 引言 之前寫程式的時候在遇到一些比較花時間的操作例如HTTP請求時,總是會new一

python操作Excel讀寫--使用xlrd

================================================================================ python 筆記整理 ============================================

Python 讀寫操作Excel —— 安裝第三方庫(xlrdxlwtxlutils)

保存數據 下載 實用 第三方 直接 install pytho 方法 xls 數據處理是 Python 的一大應用場景,而 Excel 則是最流行的數據處理軟件。因此用 Python 進行數據相關的工作時,難免要和 Excel 打交道。 如果僅僅是要以表單形式保存數據,可

Python檔案操作中的a,a+,w,w+方式的區別 ——轉載

轉載:https://blog.csdn.net/qq_38059635/article/details/81606977   第一步 排除檔案開啟方式錯誤: r只讀,r+讀寫,不建立 w新建只寫,w+新建讀寫,二者都會將檔案內容清零 (以w方式開啟,不能讀出。w+可讀

Python檔案操作中的a,a+,w,w+,rb+,rw+,ra+方式的區別

access_mode:開啟方式,r讀,w寫,a追加,r+ w+ a+ 都是以讀寫方式開啟,rb二進位制讀,wb二進位制寫,rb+ wb+ ab+二進位制讀寫  buffering:預設值  二、對檔案進行操作  將檔案中的內容讀入到一個字串變數/列表中 函式:read(),

python操作Excel常用的模組xlsxwriterxlwtxlrd

一、xlsxwriter import xlsxwriter as xw #新建excel workbook = xw.Workbook('myexcel.xlsx') #新建工作薄 workshee

Python 與 C/C++ 交互的方式

pythonpython作為一門腳本語言,其好處是語法簡單,很多東西都已經封裝好了,直接拿過來用就行,所以實現同樣一個功能,用Python寫要比用C/C++代碼量會少得多。但是優點也必然也伴隨著缺點(這是肯定的,不然還要其他語言幹嘛),python最被人詬病的一個地方可能就是其運行速度了。這這是大部分腳本語言

彈窗確認操作的業務邏輯與方式

back confirm function 綁定 問題 tor asc all document 首先,我是一名菜雞的前端開發工程師,只會切圖,除開切圖之外 我只有兩個不會,這也不會,那也不會。 最近在做一個後臺管理的項目,我需要做一個功能: 在後臺操作 刪除 修改

python操作excel及網絡編程和異常處理

size let finally 必須 新的 異常信息 屬性 開發 tar 一、python操作excel 1、讀excel,xlrd模塊用來讀excel # book = xlrd.open_workbook(r‘students.xlsx‘)#打開excel# prin

Python中time模塊和datetime模塊的常用操作以及常用時間格式間的轉換

pyrhon time datatime 幾種常用時間格式的轉換 最常見以及常用的幾種時間格式 1、時間戳(timestamp),時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量。 2、時間元組(struct_time),共有九個元素組。 3、格式化時間(fo