溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python?Excel數(shù)據(jù)處理之xlrd/xlwt/xlutils模塊怎么使用

發(fā)布時(shí)間:2023-03-21 11:19:21 來源:億速云 閱讀:91 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹了Python Excel數(shù)據(jù)處理之xlrd/xlwt/xlutils模塊怎么使用的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇Python Excel數(shù)據(jù)處理之xlrd/xlwt/xlutils模塊怎么使用文章都會(huì)有所收獲,下面我們一起來看看吧。

常規(guī)的Excel數(shù)據(jù)處理中,就是對(duì)Excel數(shù)據(jù)文件的讀/寫/文件對(duì)象操作。

通過對(duì)應(yīng)的python非標(biāo)準(zhǔn)庫xlrd/xlwt/xlutils,來實(shí)現(xiàn)具體的數(shù)據(jù)處理業(yè)務(wù)邏輯。

在復(fù)雜的Excel業(yè)務(wù)數(shù)據(jù)處理中,三兄弟扮演的角色缺一不可。如何能夠使用xlrd/xlwt/xlutils三個(gè)模塊來實(shí)現(xiàn)數(shù)據(jù)處理就是今天的內(nèi)容。

1、模塊說明

使用該三個(gè)模塊來處理Excel數(shù)據(jù)最好的地方就是他們和Excel文件對(duì)象對(duì)應(yīng)的數(shù)據(jù)處理概念是一樣的,能更好的便于我們理解數(shù)據(jù)對(duì)象。

首先,這三個(gè)模塊都是python的非標(biāo)準(zhǔn)庫,可以選擇pip的方式來進(jìn)行安裝。

pip install xlrd

pip install xlwt

pip install xlutils

下面是我們?yōu)檠菔緮?shù)據(jù)處理的過程準(zhǔn)備的源數(shù)據(jù)內(nèi)容,只是用于測(cè)試。

Python?Excel數(shù)據(jù)處理之xlrd/xlwt/xlutils模塊怎么使用

xlrd:用于讀取Excle數(shù)據(jù)文件將返回的數(shù)據(jù)對(duì)象放到內(nèi)存中,然后查詢數(shù)據(jù)文件對(duì)象的相關(guān)信息。

xlwt:用于在內(nèi)存中生成新的數(shù)據(jù)文件對(duì)象,處理完成后寫入到Excel數(shù)據(jù)文件中。

xlutils:主要的作用就是copy新的文件對(duì)象,在新的數(shù)據(jù)對(duì)象中完成數(shù)據(jù)處理操作。

將xlrd/xlwt/xlutils三個(gè)模塊分別都導(dǎo)入到待開發(fā)的代碼塊中提供支持。

# Importing the xlrd module.
import xlrd as read

# Importing the xlwt module.
import xlwt as write

# Copying the contents of the original workbook into a new workbook.
from xlutils.copy import copy

2、xlrd處理

# Opening the workbook and assigning it to the variable `work_book`.
work_book = read.open_workbook('D:/test-data-work/test.xls')

# Assigning the sheet named 'Sheet1' to the variable `sheet`.
sheet = work_book.sheet_by_name('Sheet1')

# `row = sheet.nrows` is assigning the number of rows in the sheet to the variable `row`.
row = sheet.nrows

# `col = sheet.ncols` is assigning the number of columns in the sheet to the variable `col`.
col = sheet.ncols

print('Sheet1工作表有:{0}行,{1}列'.format(str(row), str(col)))

# Sheet1工作表有:23行,5列

下面是三種常用的sheet對(duì)象的數(shù)據(jù)遍歷方式,分別是按行/列的方式進(jìn)行數(shù)據(jù)遍歷。

for a in sheet.get_rows():
    print(a)

# [text:'姓名', text:'年齡', text:'班級(jí)', text:'成績', text:'表現(xiàn)']
# [text:'Python 集中營', number:20.0, number:1210.0, number:90.0, text:'A']
# [text:'Python 集中營', number:21.0, number:1211.0, number:91.0, text:'A']
# [text:'Python 集中營', number:22.0, number:1212.0, number:92.0, text:'A']
# [text:'Python 集中營', number:23.0, number:1213.0, number:93.0, text:'A']
# [text:'Python 集中營', number:24.0, number:1214.0, number:94.0, text:'A']
# [text:'Python 集中營', number:25.0, number:1215.0, number:95.0, text:'A']
# [text:'Python 集中營', number:26.0, number:1216.0, number:96.0, text:'A']
# [text:'Python 集中營', number:27.0, number:1217.0, number:97.0, text:'A']
# [text:'Python 集中營', number:28.0, number:1218.0, number:98.0, text:'A']
# [text:'Python 集中營', number:29.0, number:1219.0, number:99.0, text:'A']
# [text:'Python 集中營', number:30.0, number:1220.0, number:100.0, text:'A']
# [text:'Python 集中營', number:31.0, number:1221.0, number:101.0, text:'A']
# [text:'Python 集中營', number:32.0, number:1222.0, number:102.0, text:'A']
# [text:'Python 集中營', number:33.0, number:1223.0, number:103.0, text:'A']
# [text:'Python 集中營', number:34.0, number:1224.0, number:104.0, text:'A']
# [text:'Python 集中營', number:35.0, number:1225.0, number:105.0, text:'A']
# [text:'Python 集中營', number:36.0, number:1226.0, number:106.0, text:'A']
# [text:'Python 集中營', number:37.0, number:1227.0, number:107.0, text:'A']
# [text:'Python 集中營', number:38.0, number:1228.0, number:108.0, text:'A']
# [text:'Python 集中營', number:39.0, number:1229.0, number:109.0, text:'A']
# [text:'Python 集中營', number:40.0, number:1230.0, number:110.0, text:'A']
# [text:'Python 集中營', number:41.0, number:1231.0, number:111.0, text:'A']

for b in range(row):
    print(sheet.row_values(b))

# ['姓名', '年齡', '班級(jí)', '成績', '表現(xiàn)']
# ['Python 集中營', 20.0, 1210.0, 90.0, 'A']
# ['Python 集中營', 21.0, 1211.0, 91.0, 'A']
# ['Python 集中營', 22.0, 1212.0, 92.0, 'A']
# ['Python 集中營', 23.0, 1213.0, 93.0, 'A']
# ['Python 集中營', 24.0, 1214.0, 94.0, 'A']
# ['Python 集中營', 25.0, 1215.0, 95.0, 'A']
# ['Python 集中營', 26.0, 1216.0, 96.0, 'A']
# ['Python 集中營', 27.0, 1217.0, 97.0, 'A']
# ['Python 集中營', 28.0, 1218.0, 98.0, 'A']
# ['Python 集中營', 29.0, 1219.0, 99.0, 'A']
# ['Python 集中營', 30.0, 1220.0, 100.0, 'A']
# ['Python 集中營', 31.0, 1221.0, 101.0, 'A']
# ['Python 集中營', 32.0, 1222.0, 102.0, 'A']
# ['Python 集中營', 33.0, 1223.0, 103.0, 'A']
# ['Python 集中營', 34.0, 1224.0, 104.0, 'A']
# ['Python 集中營', 35.0, 1225.0, 105.0, 'A']
# ['Python 集中營', 36.0, 1226.0, 106.0, 'A']
# ['Python 集中營', 37.0, 1227.0, 107.0, 'A']
# ['Python 集中營', 38.0, 1228.0, 108.0, 'A']
# ['Python 集中營', 39.0, 1229.0, 109.0, 'A']
# ['Python 集中營', 40.0, 1230.0, 110.0, 'A']
# ['Python 集中營', 41.0, 1231.0, 111.0, 'A']

for c in range(col):
    print(sheet.col_values(c))

# ['姓名', 'Python 集中營', 'Python 集中營', 'Python 集中營', 'Python 集中營', 'Python 集中營', 'Python 集中營', 'Python 集中營', 'Python 集中營', 'Python 集中營', 'Python 集中營', 'Python 集中營', 'Python 集中營', 'Python 集中營', 'Python 集中營', 'Python 集中營', 'Python 集中營', 'Python 集中營', 'Python 集中營', 'Python 集中營', 'Python 集中營', 'Python 集中營', 'Python 集中營']
# ['年齡', 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 37.0, 38.0, 39.0, 40.0, 41.0]
# ['班級(jí)', 1210.0, 1211.0, 1212.0, 1213.0, 1214.0, 1215.0, 1216.0, 1217.0, 1218.0, 1219.0, 1220.0, 1221.0, 1222.0, 1223.0, 1224.0, 1225.0, 1226.0, 1227.0, 1228.0, 1229.0, 1230.0, 1231.0]
# ['成績', 90.0, 91.0, 92.0, 93.0, 94.0, 95.0, 96.0, 97.0, 98.0, 99.0, 100.0, 101.0, 102.0, 103.0, 104.0, 105.0, 106.0, 107.0, 108.0, 109.0, 110.0, 111.0]
# ['表現(xiàn)', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A']

3、xlwt處理

# Creating a new workbook.
work_book_2 = write.Workbook()

# Creating a new sheet named 'Sheet4' in the workbook.
sheet_2 = work_book_2.add_sheet('Sheet4')

list = [
    ['姓名', '年齡', '班級(jí)', '成績'],
    ['張三', '20', '1210', '89'],
    ['李四', '21', '1211', '90'],
    ['王五', '22', '1212', '91'],
]
for row_index in range(4):
    for col_index in range(4):
        sheet_2.write(row_index, col_index, list[row_index][col_index])
        col_index += 1
    row_index += 1

# Saving the workbook to the specified location.
work_book_2.save('D:/test-data-work/test2.xls')

4、xlutils處理

# Opening the workbook and assigning it to the variable `work_book_3`.
work_book_3 = read.open_workbook('D:/test-data-work/test.xls')

# Copying the contents of the original workbook into a new workbook.
work_book_3_copy = copy(work_book_3)

# Saving the contents of the original workbook into a new workbook.
work_book_3_copy.save('D:/test-data-work/test3.xls')

關(guān)于“Python Excel數(shù)據(jù)處理之xlrd/xlwt/xlutils模塊怎么使用”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“Python Excel數(shù)據(jù)處理之xlrd/xlwt/xlutils模塊怎么使用”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI