欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Python的xlrd和xlwt操作Excel詳解

 更新時間:2023年08月21日 10:32:06   作者:程序員老華  
這篇文章主要介紹了使用Python的xlrd和xlwt對比操作Excel詳解,xlrd和xlwt是python的第三方庫,xlrd模塊實(shí)現(xiàn)對excel文件內(nèi)容讀取,xlwt模塊實(shí)現(xiàn)對excel文件的寫入,需要的朋友可以參考下

1. 操作Excel庫(xlrd和xlwt)對比

xlrd :可處理Excel后綴“.xls”、“.xlsx”,只能讀取;

xlwt :可處理Excel后綴“.xls”,可寫入、修改、保存、樣式調(diào)整、插入圖片。

2. xlrd讀取Excel

首先在程序相同目錄創(chuàng)建 “test.xls”文件,并創(chuàng)建多個 sheet。 

注意: 直接創(chuàng)建 .xls文件,即使改了擴(kuò)展命,后續(xù)操作仍會報錯。

2.1 xlrd操作方法匯總

xlrd對.xls文件操作

函數(shù)語法作用說明
Excel操作wb = xlrd.open_workbook(path)打開文件
wb.sheet_names()獲取所有的表名
wb.sheet_by_index(索引) 或 wb.sheet_by_name('Sheet表明')指定Sheet
Sheet表的行操作sheet.nrows()獲取sheet表總函數(shù)
sheet.row(1) 或 sheet.row_slice(1)返回該行中所有單元格對象組成的列表,列表內(nèi)是鍵值對,例如:['列名1':'值','列名2':'值', ...]
sheet.row_values(rowx, start_colx=0, end_colx=None)返回指定行的所有單元格數(shù)值組成的列表
sheet.row_len(rowx)返回指定行的有效長度
Sheet表的列操作sheet.ncols()返回指定sheet表的有效列數(shù)
sheet.col(1) 或 sheet.clo_slice(1)返回該列中所有的單元格對象組成的列表,列表內(nèi)是鍵值對,例如:['列名1':'值', '列明2':'值', ...]
sheet.col_values(colx, start_colx=0, end_colx=None)返回指定列的所有單元格數(shù)值組成的列表,例如:['列名':'值1', '值2',...]

2.2 xlrd用法舉例

import xlrd
#1.打開文件
wb = xlrd.open_workbook('./test.xls')
print(wb) #輸出:<xlrd.book.Book object at 0x00000192ADAA57F0>
#2.獲取所有表名
sheet_name_list = wb.sheet_names()
print(sheet_name_list) #輸出:['Sheet1', 'Sheet2', 'Sheet3']
#3.指定sheet表
#3.1索引順序獲取
sheet_1 = wb.sheet_by_index(0)
print(sheet_1) #輸出:Sheet  0:<Sheet1>
#3.2名稱獲取
sheet_2 = wb.sheet_by_name('Sheet1')
print(sheet_2) #輸出:Sheet  0:<Sheet1>
#4.對sheet行操作
#4.1獲取sheet表總行數(shù):sheet.nrows
print('Excel表中數(shù)據(jù)總行數(shù)為:',sheet_1.nrows) #Excel表中數(shù)據(jù)總行數(shù)為: 4
#4.2返回由該行中所有的單元格對象組成的列表,列表內(nèi)是鍵值對:sheet.row(行數(shù))或者sheet.row_slice(行數(shù))
print('方法1:',sheet_1.row(1),'方法2:',sheet_1.row_slice(1)) #輸出:方法1: [text:'小明', number:165.0, number:12.0, number:50.0, number:80.0] 方法2: [text:'小明', number:165.0, number:12.0, number:50.0, number:80.0]
#4.3返回指定行的所有單元格數(shù)值組成的列表:sheet.row_values(rowx, start_colx=0, end_colx=None)
print(sheet_1.row_values(1)) #輸出:['小明', 165.0, 12.0, 50.0, 80.0]
#4.4返回指定行的有效長度:sheet.row_len()
print(sheet_1.row_len(1)) #輸出:5
print('-'*40)
#5.讀取整個表
for i in range(sheet_1.nrows):
    print(sheet_1.row_values(i))
# 輸出:
#     ----------------------------------------
#     ['name', 'high', 'age', 'weight', 'score']
#     ['小明', 165.0, 12.0, 50.0, 80.0]
#     ['小紅', 160.0, 13.0, 35.0, 85.0]
#     ['小浪', 170.0, 23.0, 65.0, 100.0]
#6.對Sheet表的列進(jìn)行操作
#6.1返回指定sheet表的有效列數(shù):sheet.ncols
print('Excel表中數(shù)據(jù)總列數(shù)為:',sheet_1.ncols) #輸出:Excel表中數(shù)據(jù)總列數(shù)為: 5
#6.2返回指定列中所有的單元格組成的列表,列表內(nèi)是鍵值對:sheet.col(列數(shù)) 或者 sheet.col_slice(列數(shù))
print('方法1:',sheet_1.col(1),'方法2:',sheet_1.col_slice(1)) #輸出:方法1: [text:'high', number:165.0, number:160.0, number:170.0] 方法2: [text:'high', number:165.0, number:160.0, number:170.0]
#6.3返回指定列的所有單元格組成的列表:sheet.col_values(colx, start_colx=0, end_colx=None)
#6.3.1帶列名
print(sheet_1.col_values(0)) #輸出:['name', '小明', '小紅', '小浪']
#6.3.2不帶列名
print(sheet_1.col_values(0,1)) #輸出列名:['小明', '小紅', '小浪']
print('-'*40)
#7.讀取全部表
for i in range(sheet_1.ncols):
    print(sheet_1.col_values(i))
# 輸出:
#     ----------------------------------------
#     ['name', '小明', '小紅', '小浪']
#     ['high', 165.0, 160.0, 170.0]
#     ['age', 12.0, 13.0, 23.0]
#     ['weight', 50.0, 35.0, 65.0]
#     ['score', 80.0, 85.0, 100.0]

3. xlwt寫入Excel

xlwt 模塊是Python第三方庫,可以將數(shù)據(jù)寫入到 Excel 工作簿中。

目前支持寫入 .xls 和 .xlsx 兩種格式

3.1 xlwt操作方法匯總

函數(shù)格式功能描述
xlwt.Workbook(encoding='utf8')創(chuàng)建Excel表對象
worksheet = workbook.add_sheet('Sheet1')新建Sheet對象
worksheet.write(0, 0, 'Python')寫入數(shù)據(jù)到注定單元格。第一個參數(shù)是行數(shù),第二個參數(shù)是列數(shù),第三個參數(shù)是要寫入的字符串或數(shù)字
workbook.save('a.xlsx')保存文件,目前已支持寫入 .xls 個 .xlsx兩種格式
xlwt.Font()設(shè)置字體
xlwt.Pattern()設(shè)置背景
xlwt.Borders()設(shè)置邊框
xlwt.Alignment設(shè)置對準(zhǔn)

3.2 用法舉例

3.2.1 xlwt寫入單個數(shù)據(jù)

創(chuàng)建一個Excel表格,并在(0,0)位置寫入“Python”,并使用兩種方式進(jìn)行保存文件。

 注意: Office并不能打開 .xlsx 文件,所以需要 WPS 打開。

import xlwt
#1.創(chuàng)建Excel表對象
workbook = xlwt.Workbook(encoding='utf8')
#2.新建Sheet表
worksheet = workbook.add_sheet('Sheet1')
#3.寫入數(shù)據(jù)到指定單元格
worksheet.write(0, 0, 'Python')
#4.保存文件份兩種格式
workbook.save('a.xls')
workbook.save('a.xlsx')

運(yùn)行結(jié)果:

3.2.2 xlwt寫入多個數(shù)據(jù)

import xlwt
data = [('小明','20','男'),('小紅','21','女'),('小浪','22','男')]
#1.創(chuàng)建Excel表對象
workbook = xlwt.Workbook(encoding='utf8')
#2.新建Sheet表
worksheet = workbook.add_sheet('Sheet1')
#3.自定義列名
col_name = ('姓名','年齡','性別')
#4.將列屬性元組col_name寫進(jìn)Sheet1表單中第一行
for i in range(len(col_name)):
    worksheet.write(0,i,col_name[i])
#5.將數(shù)據(jù)寫入Sheet1表單中
for i in range(len(data)):
    In_data = data[i]
    for j in range(len(col_name)):
        worksheet.write(i+1,j,In_data[j])
#6保存文件
workbook.save('b.xls')

運(yùn)行結(jié)果: 

3.2.3 xlwt設(shè)置列寬和行高

import xlwt
data = [('小明','20','男'),('小紅','21','女'),('小浪','22','男')]
#1.創(chuàng)建Excel表對象
workbook = xlwt.Workbook(encoding='utf8')
#2.新建Sheet表
worksheet = workbook.add_sheet('Sheet1')
#3.自定義列名
col_name = ('姓名','年齡','性別')
#4.將列屬性元組col_name寫進(jìn)Sheet1表單中第一行
for i in range(len(col_name)):
    worksheet.write(0,i,col_name[i])
#5.將數(shù)據(jù)寫入Sheet1表單中
for i in range(len(data)):
    In_data = data[i]
    for j in range(len(col_name)):
        worksheet.write(i+1,j,In_data[j])
#6.設(shè)置列寬和行高
#6.1設(shè)置列寬
for i in range(len(col_name)):
    worksheet.col(i).width = 256*20 # 256為衡量單位,20表示20個字符寬度
    worksheet.row(i+1).height_mismatch = True #設(shè)置行高第一步
    worksheet.row(i+1).height = 1600 #設(shè)置行高第二步
#6保存文件
workbook.save('b.xls')

運(yùn)行結(jié)果:

3.2.4 xlwt設(shè)置單元格風(fēng)格

def body_style():
    #1.創(chuàng)建一個樣式對象,初始化樣式style
    style = xlwt.XFStyle() #創(chuàng)建 Style對象
    #2.字體風(fēng)格設(shè)置
    font = xlwt.Font() #創(chuàng)建 Font對象
    font.name = 'Simon' #設(shè)置字體類型,宋體
    font.colour_index = 4 #設(shè)置字體顏色
    font.height = 20*12 #設(shè)置字體大小,12為字號,20為衡量值
    font.bont = True #設(shè)置體字加粗
    font.underline = True #下劃線
    font.italic = True #斜體字
    #3.背景設(shè)置
    pattern = xlwt.Pattern()
    pattern.pattern = xlwt.Pattern.SOLID_PATTERN # 可選參數(shù):NO_PATTERN, SOLID_PATTERN, 或 0x00-0x12之間的數(shù)
    pattern.pattern_fore_colour = 4 #設(shè)置背景顏色
    #4.邊框設(shè)置
    borders = xlwt.Borders() #創(chuàng)建邊框?qū)ο螅?.DASHED:虛線;.NO_LINE:沒有
    #4.1上下左右添加邊框
    borders.left = 1
    borders.right = 1
    borders.top = 1
    borders.bottom = 1
    #4.2設(shè)置邊框顏色
    borders.left_colour = 2
    borders.right_colour = 2
    borders.top_colour = 2
    borders.bottom_colour = 2
    #5.位置設(shè)置
    alignment = xlwt.Alignment()
    alignment.horz = 1 #設(shè)置水平位置,0是左對齊,1是居中,2是右對齊
    alignment.wrap = 1 #設(shè)置自動換行
    #6.設(shè)置好后,全局加入到style中
    style.alignment = alignment
    style.font = font
    style.borders = borders
    return style

應(yīng)用方法

  • 不帶格式的: sheet.write(row, colum, i) 
  • 帶格式的: sheet.write(row, colim, i, style)

到此這篇關(guān)于使用Python的xlrd和xlwt操作Excel詳解的文章就介紹到這了,更多相關(guān)Python的xlrd和xlwt操作Excel內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python使用import引入其他目錄文件方式

    python使用import引入其他目錄文件方式

    這篇文章主要介紹了python使用import引入其他目錄文件方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Python實(shí)現(xiàn)線程池代碼分享

    Python實(shí)現(xiàn)線程池代碼分享

    這篇文章主要介紹了Python實(shí)現(xiàn)線程池代碼分享,本文直接給出實(shí)例代碼,需要的朋友可以參考下
    2015-06-06
  • 關(guān)于Python列表元素排序操作sort()、min()、max()函數(shù)用法

    關(guān)于Python列表元素排序操作sort()、min()、max()函數(shù)用法

    這篇文章主要介紹了關(guān)于Python列表元素排序操作sort()、min()、max()函數(shù)用法,python中提供了列表元素的操作函數(shù),那么這些函數(shù)該怎么使用呢,感興趣的朋友一起來看看吧
    2023-04-04
  • 使用pycallgraph分析python代碼函數(shù)調(diào)用流程以及框架解析

    使用pycallgraph分析python代碼函數(shù)調(diào)用流程以及框架解析

    這篇文章主要介紹了使用pycallgraph分析python代碼函數(shù)調(diào)用流程以及框架解析,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • python numpy函數(shù)中的linspace創(chuàng)建等差數(shù)列詳解

    python numpy函數(shù)中的linspace創(chuàng)建等差數(shù)列詳解

    numpy.linspace是用于創(chuàng)建一個一維數(shù)組,并且是等差數(shù)列構(gòu)成的一維數(shù)組,下面這篇文章主要給大家介紹了關(guān)于python numpy函數(shù)中的linspace創(chuàng)建等差數(shù)列的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。
    2017-10-10
  • Python處理Excel文件遇到的常見問題解析與解決

    Python處理Excel文件遇到的常見問題解析與解決

    Python 的 pandas 庫提供了便捷的 read_excel() 方法,但在實(shí)際使用中,我們可能會遇到各種問題,本文將分析這些常見錯誤,并提供 Python 和 Java 的解決方案,有需要的可以參考下
    2025-04-04
  • Python入門教程(五)Python變量的用法

    Python入門教程(五)Python變量的用法

    這篇文章主要介紹了Python入門教程(五)Python變量的用法,Python是一門非常強(qiáng)大好用的語言,也有著易上手的特性,本文為入門教程,需要的朋友可以參考下
    2023-04-04
  • python命令行模式的用法及流程

    python命令行模式的用法及流程

    在本篇文章里小編給大家整理的是一篇關(guān)于python命令行模式的用法及流程相關(guān)內(nèi)容,有興趣的朋友們可以跟著學(xué)習(xí)下。
    2021-09-09
  • 關(guān)于python下cv.waitKey無響應(yīng)的原因及解決方法

    關(guān)于python下cv.waitKey無響應(yīng)的原因及解決方法

    今天小編就為大家分享一篇關(guān)于python下cv.waitKey無響應(yīng)的原因及解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • python jinjia2的項(xiàng)目使用

    python jinjia2的項(xiàng)目使用

    本文主要介紹了python jinjia2的項(xiàng)目使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02

最新評論