python自動化操作Excel(xlwt、xlrd、xlutils)
阿新 • • 發佈:2021-01-20
簡介
python中通過xlwt、xlrd和xlutils三個模組操作xls檔案。這三個模組的區別如下:
xlwt: xlwt用於在記憶體中生成一個xlsx/xls物件,增加表格資料,並把記憶體中的xls物件儲存為本地磁碟xls檔案。
xlrd:xlrd用於把本地xls檔案載入到記憶體中,可以讀取xls檔案的表格資料,查詢xls檔案的相關資訊。
xlutils:xlutils模組是xlrd和xlwt之間的橋樑,讀取xls檔案可以使用xlrd,新建建立檔案可以使用xlwt,而修改檔案則使用xlutils;可以使用xlutils模組中的copy模組拷貝一份通過xlrd讀取到記憶體中的xls物件,就可以在拷貝物件上像xlwt中那樣修改xls表格的內容,並儲存到本地。
除此之外,還有一些其他的模組也可以用於操作excel檔案,如xlwings、openyxl、xlsxwriter、win32com和pandas庫
- xlwt可以生成xls檔案,xlrd可以讀取已經存在的xls檔案,但是如果要修改本地已經存在的xls檔案,就需要用到xlutils模組。
- xlutils模組是xlrd和xlwt之間的橋樑,可以使用xlutils模組中的copy模組,拷貝一份通過xlrd讀取到記憶體中的xls物件,就可以在拷貝物件上像xlwt中那樣修改xls表格的內容,並儲存到本地。
使用案例
1、寫入excel檔案——xlwt的用法
# 建立一個excel物件
excel = xlwt. Workbook(encoding='utf-8', style_compression=0)
# 然後新增一個sheet表單
sheet1 = excel.add_sheet("sheet1", cell_overwrite_ok=True)
# 新增自己想寫入表單的資料
sheet1.write(0,0,"name") #向(0,0)單元格寫入name
sheet1.write(0,1,"age") #向(0,1)單元格寫入age
sheet1.write(1,0,"小明") #向(1,0)單元格寫入小明
sheet1.write( 1,1,18) #向(1,1)單元格寫入18
# 儲存檔案
excel.save(u"exapmle.xls")
執行結果:
2、讀取excel檔案——xlrd的用法
2.1 基本用法——讀取指定單元格的資料
# 開啟excel檔案
excel = xlrd.open_workbook("exapmle.xls", style_compression=0)
# 開啟sheet表單
sheet1 = excel.sheet_by_name("sheet1", cell_overwrite_ok=True) #通過表單名開啟表單
sheets = excel.sheets() # 獲取所有sheets數
sheet1 = excel.sheet_by_index(0) #通過表單的序號開啟表單,序號從0開始
sheet1 = excel.sheets()[0] # 同樣獲取表單
row_data = sheet1.row_values(0) # 獲取第一行資料 type是list
col_data = sheet1.col_values(0) # 獲取第一列資料 type是list
# 獲取表單中單元格的值
cell_value0_0 = sheet1.cell(0,0).value #獲取單元格(0,0)的值
cell_value0_1 = sheet1.cell_value(0,1) #獲取單元格(0,1)的值
cell_value1_0 = sheet1.cell_value(1,0) #獲取單元格(1,0)的值
cell_value1_1 = sheet1.cell(1,1).value #獲取單元格(1,1)的值
#輸出獲取到的結果
print(cell_value0_0,cell_value0_1)
print(cell_value1_0,cell_value1_1)
2.2 get_rows()——讀取表單中的所有資料
# 除此之外,還可以使用以下方法獲取excel中的所有資料
for i in sheet1.get_rows():#使用get_rows()方法,返回一個生成器
print(i)
執行結果如下圖:
2.3 ncols和nrows——獲取表單中資料的行數和列數
#獲取列數
cols = sheet1.ncols
#獲取行數
rows = sheet1.nrows
#輸出結果
print(cols,rows)
輸出結果:
注: 不管哪個操作,都要先開啟相應表單才可以進行後續操作。
3、使用xlutils修改本地xls檔案內容——xlutils的用法
- 注:修改的是xls格式的excel,不是xlsx格式
xlutils安裝包下載連結: https://pypi.python.org/pypi/xlutils
或 http://download.csdn.net/download/dcrmg/10040953
目前最新版本是2.0 ++ 名稱是 “xlutils-2.0.0-py2.py3-none-any.whl”
安裝指令: pip install xlutils-2.0.0-py2.py3-none-any.whl
# 匯入模組
from xlutils.copy import copy
import xlrd
# 開啟想要修改的excel檔案
excel = xlrd.open_workbook("exapmle.xls")
# 複製想要修改的檔案
excel_copy = copy(excel)
# 開啟想要修改的表單
sheet1 = excel_copy.get_sheet("sheet1") #此處可以填入序號或者表單名
# 修改想要修改的單元格
sheet1.write(1,0,"小李") #修改(1,0)單元格資料為小李
sheet1.write(1,1,23) #修改(1,1)單元格資料為23
# 儲存修改過後的檔案
excel_copy.save("exapmle.xls")
修改前的結果:
修改後的結果: