Python中使用xlrd、xlwt、xlutils讀寫Excel文件


 

一、使用xlrd庫讀excel文件:

   1、xlrd模塊是什么

  • python第三方工具包,用於讀取excel中的數據;
  • 它支持 xlsx 和 xls 格式的excel表格;
  • 打開工作簿(Workbook),選擇工作表(sheets),然后操作單元格(cell)
  • 與之對應的還有一個xlwt包,用於往excel中寫入數據。
  • 命令行中輸入:pip install xlrd
  • 下載安裝包進行離線安裝

2、安裝xlrd模塊

  • 命令行中輸入:pip install xlrd
  • 下載安裝包進行離線安裝

3、xlrd應用舉例:

  

  (1)打開一個工作簿對象:

     workbook = xlrd.open_workbook("a1.xlsx")

  (2)獲取一個工作表(三種方法)

sheet = workbook.sheets()[0]           #通過索引順序獲取

sheet = workbook.sheet_by_index(0)     #通過索引順序獲取

sheet = workbook.sheet_by_name(u'Sheet1')#通過名稱獲取

  (3)獲取行數和列數:

rows = sheet.nrows  #獲取行數

cols = sheet.ncols  #獲取列數

   (4)獲取整行和整列的值

rowData = sheet.row_values(行索引號)
colDate = sheet.col_values(列索引號)

   (5)通過循環讀取表格的所有行

for i in range(sheet.nrows):
    print(sheet.row_values(i))

   (6)獲取單元格的值

cell_A1 = sheet.row(0)[0]
cell_A1 = sheet.cell(0,0)
cell_A1 = sheet.col(0)[0]

 

 二、使用xlwt庫寫excel文件:

   1、xlwt模塊是什么

  • xlwt就是一個純粹的Writer了,因為它只能對Excel進行寫操作

import xlwt

workbook =xlwt.Workbook() #新建一個工作簿

s1 = workbook.add_sheet("test")  #向工作簿中添加工作表,名稱為test

s1.write(0,0,u"姓名")  #test表的第一個單元格添加"姓名"

s2 = workbook.add_sheet("tttt")  #向工作簿中添加工作表,名稱為tttt

s2.write(0,1,u'職稱') #tttt表的第二個單元格添加"職稱"

workbook.save("a1.xlsx")

2、xlwt支持一定的樣式,操作如下:

#初始化樣式

  • style=xlwt.XFStyle()

#為樣式創建字體

  • font=xlwt.Font() 

#指定字體名字

  • font.name='Times New Roman' 

#字體加粗

  • font.bold=True

#將該font設定為style的字體

  • style.font=font 

#寫入到文件時使用該樣式

  • sheet.write(0,1,'just for test',style)

 

三、使用xlutils在excel工作簿中增加新的sheet表:xlutils模塊用於復制excel表格

import xlrd,xlwt,xlutils

from xlutils.copy import copy

rb = xlrd.open_workbook("a3.xlsx",formatting_info=True)

wb = copy(rb)

#workbook =xlwt.Workbook() #新建一個工作簿

s1 = wb.add_sheet("t1")  #向工作簿中添加工作表,名稱為test

s1.write(0,0,u"姓名")  #test表的第一個單元格添加"姓名"

s2 = wb.add_sheet("t2")  #向工作簿中添加工作表,名稱為tttt

s2.write(0,1,u'職稱') #tttt表的第二個單元格添加"職稱"

wb.save("a3.xlsx")

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM