九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
最全整理!Python 操作 Excel 庫 xlrd與xlwt 常用操作詳解!

大家好,我是早起。

在之前的Python辦公自動(dòng)化系列文章中,我們已經(jīng)相信介紹了openyxl、xlsxwriter等Python操作Excel庫。

相信大家對于幾個(gè)庫的差異與使用場景有了一定的認(rèn)識(shí),本文將繼續(xù)介紹另外兩種操作Excel的Python庫---xlrdxlwt??纯催@兩者搭配起來如何玩出火花!

和以前文章一樣,有請老朋友openpyxl登場來進(jìn)行對比

  • openyxl:可以對xlsx、xlsm文件進(jìn)行讀、寫操作,主要對Excel2007年之后的版本(.xlsx)
  • xlrd:可以對xlsx、xls、xlsm文件進(jìn)行讀操作且效率高
  • xlwt:主要對xls文件進(jìn)行寫操作且效率高,但是不能執(zhí)行xlsx文件

通過對比,可以看到在效率上而言,xlrd&xlwtopenyxl要高效得多。而寫入數(shù)據(jù)方面上而言,openyxl又比較貼近我們的日常所需,所以兩種方式來處理Excel各有千秋。

一、簡介

xlrd是用來從Excel中讀寫數(shù)據(jù)的,但我們通常只用它進(jìn)行讀操作,寫操作會(huì)相對于裝門寫入的模塊麻煩一些。其實(shí),后面的rd可以看出是reader的縮小。

類比于xlrd的reader,那么xlwt就相對于writer,而且很純正的一點(diǎn)就是它只能對Excel進(jìn)行寫操作。xlwt和xlrd不光名字像,連很多函數(shù)和操作格式也是完全相同。下面讓我們慢慢介紹。

二、安裝與使用

安裝很簡單,直接在命令行或者終端中使用pip安裝

pip install Xlrd
pip install xlwt

而使用xlrd&xlwt操作Excel的大致過程如下圖所示

三、xlrd常用操作詳解

現(xiàn)在我們講解xlrd操作Excel部分常用操作,先準(zhǔn)備一份Excel文件,大致如下圖:

用xlrd進(jìn)行讀取比較方便,流程和平常手動(dòng)操作Excel一樣,打開工作簿(Workbook),選擇工作表(sheets),然后操作單元格(cell)。接下來先介紹一下基本操作在舉個(gè)例子。

3.1 打開Excel文件

import xlrd
df = xlrd.open_workbook(name) 

先導(dǎo)入模塊而后使用open_workbook()函數(shù)來讀取指定的一個(gè)工作簿對象。這里的參數(shù)name是Excel文件的名字,一般使用的是相對路徑的名字,結(jié)果如下

3.2 查看工作簿中所有sheet

df.sheet_names()

我們讀取上述文件,便可以得到以列表形式嵌字符串的值。

3.3 選擇某一個(gè)工作表

先看代碼

table=df.sheets()[0]  #列表是從0開始計(jì)數(shù)
table=df.sheet_by_index(0)
table=df.sheet_by_name('name')

第一行代碼是獲取第一個(gè)工作表的意思,寫法是根據(jù)內(nèi)置的列表格式來選取的。

第二行代碼顧名思義是通過索引獲取第一個(gè)工作表,這里的索引與pandasDataFrameindex索引類似,只不過對象換成了工作表。

第三行代碼是通過表的名稱選擇工作表,如果工作表是有自己的名字的,那么這個(gè)讀取方式是最方便的。

打印table,可以得到類似下圖的結(jié)果

3.4 獲取表格的行數(shù)和列數(shù)

注意,這里不需要在函數(shù)后面加小括號(hào),否則你可能debug時(shí)都頭痛于錯(cuò)在哪。

row=table.nrows
col=table.ncols

打印row和col,可以發(fā)現(xiàn)是和我們的原表格一樣的行列數(shù)。

3.5 獲取整行和整列的值

這里需要注意兩個(gè)參數(shù):num1和num2

table.row_values(num1)
table.column_values(num2)

num1在row_values()中,指的是選取的行數(shù)時(shí)多少,例如我們選取第一行所有字段名稱數(shù)據(jù),那么這個(gè)num1就是0。

同理,column_values()的參數(shù)就是第幾列的意思。

它出來的值是一個(gè)列表的形式。調(diào)用第一行代碼,可以得到如下結(jié)果。

3.6 通過循環(huán)讀取表格的所有行

在第五步我們實(shí)現(xiàn)了讀取單行單列的數(shù)據(jù),那么我們就用循環(huán)來將所有行打印出來。

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

效果如下

3.7 獲取單元格的值

代碼很簡單,有點(diǎn)像VBA

cell1=table.row(0)[0].value
cell1=table.cell(0,0).value
cell1=table.col(0)[0].value

第一行獲取單元格值的方式是通過調(diào)取指定行數(shù)據(jù)進(jìn)行篩選。

第二行是以二維的形式獲取,即(第i行,第j列)形式。

第三行與第一行類似是通過列索引調(diào)用。

3.8 例子

最后來舉一個(gè)完整的例子

df=xlrd.open_workbook('data.xlsx')  
table=df.sheet_by_name('早起Python')
data_list=[] 
data_list.append(table.row_values(1))
for i in data_list:
    print(i)

打出來的結(jié)果

這里我們的目的是選取上述講解過的語法,將第三行所有數(shù)據(jù)放到data_list列表中并用for循環(huán)將它打印出來。

四、xlwt常用操作詳解

4.1 新建一個(gè)Excel文件

直接使用.Workbook()即可

import xlwt
df2 = xlwt.Workbook()

4.2 新建一個(gè)工作表

這里的name是工作表的名稱

table2=df2.add_sheet('name')

4.3 寫入數(shù)據(jù)到指定單元格

這里有三個(gè)參數(shù),前兩個(gè)參數(shù)對應(yīng)(第i行,第j列),代表的是單元格的位置。第三個(gè)參數(shù)是要寫的值(可以是字符串、數(shù)字)

table2.write(0,0,'Python')

需要注意的是,如果是對同一個(gè)單元格重復(fù)操作,會(huì)讓Python報(bào)錯(cuò)(多次輸入錯(cuò)誤),所以如果想要取消這個(gè)功能,則添加這個(gè)參數(shù)在新建工作表的代碼里面。

table2=df2.add_sheet('name',cell_overwrite_ok=True)

4.4 保存文件

上面提示過,xlwt僅支持.xls的文件格式輸出,常用的xlsx是不行的。這也是這個(gè)模塊的一種缺陷。

df2.save('data2.xls')

4.5 改變樣式

調(diào)整樣式也是可以的,先看幾行代碼

style=xlwt.XFStyle()

font=xlwt.Font()

font.name='name Times New Roman'

font.bold=True

style.font=font

sheet.write(0,1,'Python',style)

第一行代碼是初始化樣式,可以認(rèn)為是一個(gè)類似于父類的東西。

第二行代碼是為樣式創(chuàng)建字體

第三行代碼是指定字體的名字,這里用到的是name Times New Roman這個(gè)類型。

第四行代碼是字體加粗,以布爾值的形式的設(shè)定。

第五行代碼是將font設(shè)定為style的字體

第六行代碼是寫入文件單元格時(shí)怎么運(yùn)用這個(gè)格式。

4.6 例子:

最后,我們結(jié)合兩個(gè)模塊進(jìn)行讀寫操作。

我們的目標(biāo)是將已經(jīng)準(zhǔn)備好的data文件進(jìn)行讀取,并將其內(nèi)容進(jìn)行倒序排序,最終以轉(zhuǎn)置形式輸出。先思考一下如何使用代碼實(shí)現(xiàn)??

對于xlwt寫入部分,先創(chuàng)建一個(gè)早起Python的工作表。并將提取的數(shù)據(jù)列表data_list1用列表的倒敘來排序。最后用pop()函數(shù)把兩個(gè)字段名稱(grammerpopularity)放在首位。最后結(jié)合我們寫入部分講解的內(nèi)容進(jìn)行保存。

xlrd讀取部分我們稍有不同的是,我們的for循環(huán)用在了提取所有數(shù)據(jù)這一步驟,而不再是循環(huán)輸出列表值。

所以完整代碼如下

import xlrd
df=xlrd.open_workbook('data.xlsx')  
table=df.sheet_by_name('早起Python')
data_list=[] 
for i in range(table.nrows):
    data_list.append(table.row_values(i))
data_list1 = []
data_list1 = data_list[::-1]
item = data_list1.pop(-1)
data_list1.insert(0,item)
import xlwt
df2 = xlwt.Workbook()
table2=df2.add_sheet('早起Python')
for i in range(2):
    for j in range(9):
        table2.write(i,j,data_list1[j][i])
df2.save('data2.xls')

至此我們就將xlrdxlwt的常用操作都盤點(diǎn)了一遍,如果想要了解的透徹一點(diǎn)的話,早起還是建議按照文中介紹的順序自己動(dòng)手敲一遍代碼來體會(huì)!

最后也希望大家能夠體會(huì)不同庫之間的異同與使用場景,當(dāng)然Python操作Excel的庫并不止這五個(gè)(openpyxlxlswriter、xlwings、xlrd、xlwt),我會(huì)在全部介紹一遍后為大家送上總結(jié)!

文末福利

早起收藏了 2 張Python 數(shù)據(jù)分析速查表,每一張都是非常實(shí)用 ~

怎么獲取呢?

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Python Excel 讀寫及追加寫入(xlrd、xlwt、openpyxl、XlsxWriter)
用python讀寫excel的方法
如何將Excel導(dǎo)入Python之中呢?
python操作excel方法?
Python|讀、寫Excel文件(三種模塊三種方式)
Python操作Excel 模塊,你猜哪家強(qiáng)?
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服