Python Excel 辦公自動化系列——xlrd/xlwt庫使用詳解

2021-02-13 Python當打之年

xlrd模塊可以用於讀取Excel的數據,速度非常快,推薦使用!

官方文檔:https://xlrd.readthedocs.io/en/latest/

到python官網下載http://pypi.python.org/pypi/xlrd模塊安裝,前提是已經安裝了python 環境,或者在cmd窗口 pip install xlrd

empty(空的)

string(text)

number

date

boolean

error

blank(空白表格)

#文件名以及路徑,如果路徑或者文件名有中文給前面加一個 r
data = xlrd.open_workbook(filename)

  excel中最重要的方法就是book和sheet的操作

#通過索引順序獲取
table = data.sheets()[0]
#通過索引順序獲取
table = data.sheet_by_index(sheet_indx)
#通過名稱獲取
table = data.sheet_by_name(sheet_name)

# 以上三個函數都會返回一個xlrd.sheet.Sheet()對象
#返回book中所有工作表的名字
names = data.sheet_names()
#檢查某個sheet是否導入完畢
data.sheet_loaded(sheet_name or indx)

# 獲取該sheet中的行數,注,這裡table.nrows後面不帶().

nrows = table.nrows

# 返

回由該行中所有的單元格對象組成的列表,這與tabel.raw()方法並沒有區別。

table.row(rowx)

# 返回由該行中所有的單元格對象組成的列表

table.row_slice(rowx)

# 返回由該行中所有單元格的數據類型組成的列表;    
# 返回值為邏輯值列表,若類型為empy則為0,否則為1

table.row_types(rowx, start_colx=0, end_colx=None)

# 返回由該行中所有單元格的數據組成的列表

table.row_values(rowx, start_colx=0, end_colx=None)

# 返回該行的有效單元格長度,即這一行有多少個數據
table.row_len(rowx)

# 獲取列表的有效列數

ncols = table.ncols

# 返

回由該列中所有的單元格對象組成的列表

table.col(colx, start_rowx=0, end_rowx=None)

#

返回由該列中所有的單元格對象組成的列表

table.col_slice(colx, start_rowx=0, end_rowx=None)

# 返回由該列中所有單元格的數據類型組成的列表

table.col_types(colx, start_rowx=0, end_rowx=None)

#

返回由該列中所有單元格的數據組成的列表
table.col_values(colx, start_rowx=0, end_rowx=None)

# 返回單元格對象

table.cell(rowx,colx)

# 返回對應位置單元格中的數據類型

table.cell_type(rowx,colx)

# 返回對應位置單元格中的數據
table.cell_value(rowx,colx)

import xlrd

xlsx = xlrd.open_workbook('./3_1 xlrd 讀取 操作練習.xlsx')

# 通過sheet名查找:xlsx.sheet_by_name("sheet1")
# 通過索引查找:xlsx.sheet_by_index(3)
table = xlsx.sheet_by_index(0)

# 獲取單個表格值 (2,1)表示獲取第3行第2列單元格的值
value = table.cell_value(2, 1)
print("第3行2列值為",value)

# 獲取表格行數
nrows = table.nrows
print("表格一共有",nrows,"行")

# 獲取第4列所有值(列表生成式)
name_list = [str(table.cell_value(i, 3)) for i in range(1, nrows)]
print("第4列所有的值:",name_list)

xlwt可以用於寫入新的Excel表格或者在原表格基礎上進行修改,速度也很快,推薦使用!

官方文檔:https://xlwt.readthedocs.io/en/latest/

3.2 pip安裝xlwt:使用xlwt創建新表格寫入

def fun3_2_2():
   # 創建新的workbook(其實就是創建新的excel)
   workbook = xlwt.Workbook(encoding= 'ascii')

# 創建新的sheet表
   worksheet = workbook.add_sheet("My new Sheet")

# 往表格寫入內容
   worksheet.write(0,0, "內容1")
worksheet.write(2,1, "內容2")

# 保存
   workbook.save("新創建的表格.xls")

def fun3_2_3():
   # 創建新的workbook(其實就是創建新的excel)
   workbook = xlwt.Workbook(encoding= 'ascii')

# 創建新的sheet表
   worksheet = workbook.add_sheet("My new Sheet")

# 初始化樣式
   style = xlwt.XFStyle()

# 為樣式創建字體
   font = xlwt.Font()
font.name = 'Times New Roman'   #字體
   font.bold = True                #加粗
   font.underline = True           #下劃線
   font.italic = True              #斜體
   # 設置樣式
   style.font = font

# 往表格寫入內容
   worksheet.write(0,0, "內容1")
worksheet.write(2,1, "內容2",style)

# 保存
   workbook.save("新創建的表格.xls")

xlwt中列寬的值表示方法:默認字體0的1/256為衡量單位。xlwt創建時使用的默認寬度為2960,既11個字符0的寬度所以我們在設置列寬時可以用如下方法:width = 256 * 20 256為衡量單位,20表示20個字符寬度。

def fun3_2_4():
   # 創建新的workbook(其實就是創建新的excel)
   workbook = xlwt.Workbook(encoding= 'ascii')

# 創建新的sheet表
   worksheet = workbook.add_sheet("My new Sheet")

# 往表格寫入內容
   worksheet.write(0,0, "內容1")
worksheet.write(2,1, "內容2")

# 設置列寬
   worksheet.col(0).width = 256*20
   # 保存
   workbook.save("新創建的表格.xls")

在xlwt中沒有特定的函數來設置默認的列寬及行高,行高是在單元格的樣式中設置的,你可以通過自動換行通過輸入文字的多少來確定行高。

def fun3_2_5():
   # 創建新的workbook(其實就是創建新的excel)
   workbook = xlwt.Workbook(encoding= 'ascii')

# 創建新的sheet表
   worksheet = workbook.add_sheet("My new Sheet")

# 往表格寫入內容
   worksheet.write(0,0, "內容1")
worksheet.write(2,1, "內容2")

# 設置行高
   style = xlwt.easyxf('font:height 360;') # 18pt,類型小初的字號
   row = worksheet.row(0)
row.set_style(style)

# 保存
   workbook.save("新創建的表格.xls")

def fun3_2_6():
   # 創建新的workbook(其實就是創建新的excel)
   workbook = xlwt.Workbook(encoding='ascii')

# 創建新的sheet表
   worksheet = workbook.add_sheet("My new Sheet")

# 往表格寫入內容
   worksheet.write(0, 0, "內容1")

# 合併 第1行到第2行 的 第0列到第3列
   worksheet.write_merge(1, 2, 0, 3, 'Merge Test')

# 保存
   workbook.save("新創建的表格.xls")

def fun3_2_7():
   # 創建新的workbook(其實就是創建新的excel)
   workbook = xlwt.Workbook(encoding='ascii')

# 創建新的sheet表
   worksheet = workbook.add_sheet("My new Sheet")

# 往表格寫入內容
   worksheet.write(0, 0, "內容1")

# 設置邊框樣式
   borders = xlwt.Borders() # Create Borders
   # May be:   NO_LINE, THIN, MEDIUM, DASHED, DOTTED, THICK, DOUBLE, HAIR,
   #           MEDIUM_DASHED, THIN_DASH_DOTTED, MEDIUM_DASH_DOTTED, THIN_DASH_DOT_DOTTED,
   #           MEDIUM_DASH_DOT_DOTTED, SLANTED_MEDIUM_DASH_DOTTED, or 0x00 through 0x0D.
   # DASHED虛線
   # NO_LINE沒有
   # THIN實線
   borders.left = xlwt.Borders.DASHED
borders.right = xlwt.Borders.DASHED
borders.top = xlwt.Borders.DASHED
borders.bottom = xlwt.Borders.DASHED
borders.left_colour = 0x40
   borders.right_colour = 0x40
   borders.top_colour = 0x40
   borders.bottom_colour = 0x40
   style = xlwt.XFStyle() # Create Style
   style.borders = borders # Add Borders to Style
   worksheet.write(0, 0, '內容1', style)

worksheet.write(2, 1, "內容2")

# 保存
   workbook.save("新創建的表格.xls")

def fun3_2_8():
   # 創建新的workbook(其實就是創建新的excel)
   workbook = xlwt.Workbook(encoding='ascii')

# 創建新的sheet表
   worksheet = workbook.add_sheet("My new Sheet")

# 往表格寫入內容
   worksheet.write(0, 0, "內容1")

# 創建樣式
   pattern = xlwt.Pattern()

# May be: NO_PATTERN, SOLID_PATTERN, or 0x00 through 0x12
   pattern.pattern = xlwt.Pattern.SOLID_PATTERN

# May be: 8 through 63. 0 = Black, 1 = White, 2 = Red, 3 = Green, 4 = Blue, 5 = Yellow,
   # 6 = Magenta, 7 = Cyan, 16 = Maroon, 17 = Dark Green, 18 = Dark Blue, 19 = Dark Yellow ,
   # almost brown), 20 = Dark Magenta, 21 = Teal, 22 = Light Gray, 23 = Dark Gray, the list goes on...
   pattern.pattern_fore_colour = 5
   style = xlwt.XFStyle()
style.pattern = pattern

# 使用樣式
   worksheet.write(2, 1, "內容2", style)

3.9 xlwt 設置單元格對齊

xlwt中列寬的值表示方法:默認字體0的1/256為衡量單位。

xlwt創建時使用的默認寬度為2960,既11個字符0的寬度,

所以我們在設置列寬時可以用如下方法:

width = 256 * 20 256為衡量單位,20表示20個字符寬度

def fun3_2_9():
   # 創建新的workbook(其實就是創建新的excel)
   workbook = xlwt.Workbook(encoding= 'ascii')

# 創建新的sheet表
   worksheet = workbook.add_sheet("My new Sheet")

# 往表格寫入內容
   worksheet.write(0,0, "內容1")

# 設置樣式
   style = xlwt.XFStyle()
al = xlwt.Alignment()
# VERT_TOP = 0x00       上端對齊
   # VERT_CENTER = 0x01    居中對齊(垂直方向上)
   # VERT_BOTTOM = 0x02    低端對齊
   # HORZ_LEFT = 0x01      左端對齊
   # HORZ_CENTER = 0x02    居中對齊(水平方向上)
   # HORZ_RIGHT = 0x03     右端對齊
   al.horz = 0x02  # 設置水平居中
   al.vert = 0x01  # 設置垂直居中
   style.alignment = al

# 對齊寫入
   worksheet.write(2,1, "內容2",style)

# 保存
   workbook.save("新創建的表格.xls")

相關焦點

  • python+xlrd+xlwt操作excel
    小強python全棧自動化測試培訓班招生中,預計開課時間為18年3月份在2017年10月之前報名並繳納全部費用的童鞋優惠
  • Python使用xlrd和xlwt讀寫Excel的簡單用法
    標準的 Excel 文件(xls/xlsx)具有較複雜的格式,並不方便像普通文本文件一樣直接進行讀寫,需要藉助第三方庫來實現。常用的庫是 python-excel 系列:xlrd、xlwt、xlutils它們有個缺陷,就是只能處理 xls 文件。如果你想用新版本的 xlsx,可以考慮 openpyxl 和 xlsxwriter。
  • Python 操作 Excel 庫 xlrd與xlwt 常用操作詳解!
    在之前的Python辦公自動化系列文章中,我們已經相信介紹了openyxl、xlsxwriter等Python操作Excel庫。相信大家對於幾個庫的差異與使用場景有了一定的認識,本文將繼續介紹另外兩種操作Excel的Python庫---xlrd與xlwt。看看這兩者搭配起來如何玩出火花!
  • 聊聊python 辦公自動化之 Excel(上)
    前言在我們日常工作中,經常會使用 Word、Excel、PPT、PDF 等辦公軟體。但是,經常會遇到一些重複繁瑣的事情,這時候手工操作顯得效率極其低下;通過python 實現辦公自動化很有必要。接下來的 一系列 文章,我將帶大家對 Python 辦公自動化做一個全面的總結,絕對的乾貨!
  • Python Excel 辦公自動化系列——win32com/pandas庫使用詳解
    01 Python Excel庫對比02 Python xlrd 讀取 操作Excel03 Python xlwt 寫入 操作Excel04 Python xlutils 修改 操作Excel05 Python xlwings 讀取 寫入 修改 操作Excel
  • Python實踐:操作Excel文件之xlrd、xlwt
    Python實踐:操作Excel文件之xlrd、xlwt一、xlrd模塊讀xls格式文件下載安裝:https://pypi.org/project/xlrd/文檔說明:https://xlrd.readthedocs.io/en/latest/Github地址:https://github.com/python-excel/xlrdPDF文檔:https://
  • 講一講我是如何通過Python實現辦公自動化的
    自動化辦公無非是excel、ppt、word、郵件、文件處理、數據分析處理、爬蟲這些,今天我們主要來講講excel、ppt、word自動化的操作技巧。python針對excel有很多的第三方庫可以用,比如xlwings、xlsxwriter、xlrd、xlwt、pandas、xlsxwriter、win32com、xlutils等等。
  • Python常用庫- xlrd庫
    xlrd是python語言中用於讀取excel表格內容的庫,還有一個xlwt庫用於將內容寫入excel。
  • 詳解Python操作Excel文件
    前言本篇文章主要總結了一下利用python操作Excel文件的第三方庫和方法。常見庫簡介1.xlrdxlrd是一個從Excel文件讀取數據和格式化信息的庫,支持.xls以及.xlsx文件。地址:http://xlrd.readthedocs.io/en/latest/2.xlwtxlwt是一個用於將數據和格式化信息寫入舊Excel文件的庫(如.xls)。地址:https://xlwt.readthedocs.io/en/latest/3.xlutilsxlutils是一個處理Excel文件的庫,依賴於xlrd和xlwt。
  • Python自動化用這些知識點就夠了!
    自動化辦公無非是excel、ppt、word、郵件、文件處理、數據分析處理、爬蟲這些,這次就來理一理python自動化辦公的那些知識點。下面一一詳解。excel自動化office家族其實都可以用VBA解決自動化的問題,但可能很多人不會用。python針對excel有很多的第三方庫可以用,比如xlwings、xlsxwriter、xlrd、xlwt、pandas、xlsxwriter、win32com、xlutils等等。
  • 【Python技術進階-7】使用Python的xlrd操作Excel文檔詳細指南
    (福利:文末會有這次任務的精簡版的代碼喲,小夥伴可以作為讀取excel文檔的練習。)Python處理Excel文檔的第三方庫主要有:xlrd,xlwt,openpyxl等。Xlrd用於讀取操作,xlwt用於寫入操作,openpyxl用於讀寫操作。
  • Python辦公自動化—xlrd模塊如何應用在Excel中?
    Python辦公自動化主要包括Excel讀寫數據、PPT、Word三個方面的學習,上次安裝了Python自動化辦公的基本環境搭建(Python辦公自動化
  • Excel文件另類操作,如何用Python中xlrd模塊獲取電子表格的信息
    前面內容,我們介紹了Python使用openpyxl模塊對Excel文件進行操作的一些案例。喜歡的小夥伴可以關注我,看下往期的內容。今天,我們來詳細了解下Python處理Excel文件的另外一種模塊xlrd模塊。
  • Python技術進階-8】Python使用xlwt操作Excel詳細指南
    上一篇的文章《【Python技術進階-7】使用Python操作Excel》(點擊左邊標題可查看),飛哥給小夥伴介紹了
  • Python讀寫Excel表格,就是這麼簡單粗暴又好用
    以前正好在一本書上看到過使用Python來處理Excel表格,可惜沒有仔細看。於是我到處查找資料,基本解決了日常所需,終於算是完成了任務,因此撰寫此文就算是總結吧,主要記錄使用過程的常見問題及解決。python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。可從這裡下載https://pypi.python.org/pypi。
  • 【校園雜工】Python腳本處理檔案圖片之完結篇:Python處理Excel
    表格接下來我們自動生成下圖所示的excel文件:讀寫excel要用到 xlrd和 xlwt庫,這兩個庫的名字分別是xls read和xls write的縮寫,這裡我們主要用到xlwt文件。安裝xlwt庫我們用pip命令安裝第三方庫,打開命令行,輸入 pip install xlwt等一小會,xlwt庫就可以安裝完成,安裝成功會有提示。
  • PDF轉EXCEL,python的這個技能知道嗎?
    1.使用的庫簡單介紹一下要使用的庫:pdfplumber 和xlwt1.pdfplumberpdfplumber使用來解析pdf的文字與表格。python辦公自動化——PDF轉Word所使用的pdfminer庫類似,都是從pdf裡面提取信息。
  • Python讀寫Excel表格,就是這麼簡單粗暴又好用(文末送書)
    以前正好在一本書上看到過使用Python來處理Excel表格,可惜沒有仔細看。於是我到處查找資料,基本解決了日常所需,終於算是完成了任務,因此撰寫此文就算是總結吧,主要記錄使用過程的常見問題及解決。python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。可從這裡下載https://pypi.python.org/pypi。
  • 如何在Visual Studio中創建excel並讀取數據
    >xlrd技術pythondjangoexcel在Visual Studio開發工具中,創建python項目,然後安裝xlwt和xlrd第三方庫,使用xlwt創建excel文件並寫入數據,使用xlrd讀取excel文件中的數據。
  • 14-用Python 讀寫 Excel 文件
    和R這樣的分析工具了XlsxWriterxlrd&xlwt[2]OpenPyXL[3]Microsoft Excel API[4]介紹可以創建 Excel 2007 或更高版本的 XLSX 文件即 python-excel,含 xlrd、xlwt 和 xlutils 三大模塊,分別提供讀、寫和其他功能可以讀寫 Excel 2007 XLSX 和 XLSM 文件直接通過 COM