Python|讀唯欣、寫Excel文件(三種模塊三種方式)

python讀寫excel的方式有很多混萝,不同的模塊在讀寫的講法上稍有區(qū)別:

用xlrd和xlwt進(jìn)行excel讀寫遗遵;

用openpyxl進(jìn)行excel讀寫;

用pandas進(jìn)行excel讀寫譬圣;

為了方便演示瓮恭,我這里新建了一個(gè)data.xlsx文件,第一個(gè)工作表sheet1區(qū)域“A1:F5”的內(nèi)容如下厘熟,用于測(cè)試讀excel的代碼:

1 利用xlrd和xlwt進(jìn)行excel讀寫(xlwt不支持xlsx)

首先是安裝第三方模塊xlrd和xlwt屯蹦,直接輸入命令"pip install xlrd"和"pip install xlwt"就行维哈,如下(cmd→CD→c:pythonscripts):

1.1 xlrd讀excel

import xlrd

book = xlrd.open_workbook('data.xlsx')

sheet1 = book.sheets()[0]

nrows = sheet1.nrows

print('表格總行數(shù)',nrows)

ncols = sheet1.ncols

print('表格總列數(shù)',ncols)

row3_values = sheet1.row_values(2)

print('第3行值',row3_values)

col3_values = sheet1.col_values(2)

print('第3列值',col3_values)

cell_3_3 = sheet1.cell(2,2).value

print('第3行第3列的單元格的值:',cell_3_3)

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

表格總行數(shù) 5

表格總列數(shù) 5

第3行值 ['3A', '3B', '3C', '3D', '3F']

第3列值 ['1C', '2C', '3C', '4C', '5C']

第3行第3列的單元格的值: 3C

1.2 xlwt寫excel

主要代碼如下,很簡單:

import xlwt # 貌似不支持excel2007的xlsx格式

workbook = xlwt.Workbook()

worksheet = workbook.add_sheet('test')

worksheet.write(0,0,'A1data')

workbook.save('excelwrite.xls')

程序運(yùn)行后登澜,新建excelwrite.xls工作簿并插入text工作表阔挠,A1的內(nèi)容為A1data。

2 利用openpyxl讀寫excel脑蠕,注意這里只能是xlsx類型的excel

安裝的話购撼,直接輸入命令"pip install openpyxl"就行,很快就能安裝完畢谴仙。

2.1 讀excel

import openpyxl

workbook = openpyxl.load_workbook('data.xlsx')

worksheet = workbook.get_sheet_by_name('Sheet1')

row3=[item.value for item in list(worksheet.rows)[2]]

print('第3行值',row3)

col3=[item.value for item in list(worksheet.columns)[2]]

print('第3行值',col3)

cell_2_3=worksheet.cell(row=2,column=3).value

print('第2行第3列值',cell_2_3)

max_row=worksheet.max_row

print('最大行',max_row)

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

第3行值 ['3A', '3B', '3C', '3D', '3F']

第3行值 ['1C', '2C', '3C', '4C', '5C']

第2行第3列值 2C

最大行 5

2.2 寫excel

主要代碼如下:

import openpyxl

workbook = openpyxl.Workbook()

sheet=workbook.active

sheet['A1']='hi,wwu'

workbook.save('new.xlsx')

程序運(yùn)行后迂求,新建new.xls工作簿并插入sheet工作表,A1的內(nèi)容為hi,wwu晃跺。

3 利用pandas讀取excel

Pandas的名稱來自于面板數(shù)據(jù)(panel data)和python數(shù)據(jù)分析(data analysis)揩局。

首先要安裝pandas模塊,相對(duì)來說掀虎,安裝pandas模塊要復(fù)雜一些凌盯。

如果用pip install pandas安裝后運(yùn)行出錯(cuò),可以考慮安裝以前的版本:pip install pandas==0.22

pandas是一個(gè)數(shù)據(jù)處理的包烹玉,本身提供了許多讀取文件的函數(shù)驰怎,像read_csv(讀取csv文件),read_excel(讀取excel文件)等二打,只需一行代碼就能實(shí)現(xiàn)文件的讀取

3.1 讀excel

主要代碼如下县忌,就1行代碼搞定,注意這里的data是DataFrame類型:

import pandas as pd

df = pd.read_excel(r'data.xlsx',sheetname=0)

print(df.head())

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

1A 1B 1C 1D 1F

0 2A 2B 2C 2D 2F

1 3A 3B 3C 3D 3F

2 4A 4B 4C 4D 4F

3 5A 5B 5C 5D 5F

3.2 寫excel

主要代碼如下:

from pandas import DataFrame

data={

'name':['張三','李四','王五'],

'age':[11,12,13]

'sex':'男','女','男']

}

df=DataFrame(data)

df.to_excel('new.xlsx")

程序運(yùn)行后继效,將新建(或替換)new.xlsx文件芹枷,并在工作表sheet1的A1:D4區(qū)域中保存內(nèi)容如下:

至此,我們就完成了excel的讀寫莲趣。總的來說饱溢,這3種方法都很簡單喧伞,尤其是第3種方法,1行代碼就搞定绩郎,在數(shù)據(jù)處理中潘鲫,經(jīng)常會(huì)用到pandas這個(gè)包(該包可以處理眾多常見的數(shù)據(jù)存儲(chǔ)格式,如CSV肋杖、JSON等)溉仑,功能很強(qiáng)大,當(dāng)然還有許多其他的包也可以完成excel的讀寫

我剛整理了一套2018最新的0基礎(chǔ)入門和進(jìn)階教程状植,無私分享浊竟,加Python學(xué)習(xí)q-u-n?:二二七怨喘,四三五,四五零 即可獲取振定,內(nèi)附:開發(fā)工具和安裝包必怜,以及系統(tǒng)學(xué)習(xí)路線圖

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市后频,隨后出現(xiàn)的幾起案子梳庆,更是在濱河造成了極大的恐慌,老刑警劉巖卑惜,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件膏执,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡露久,警方通過查閱死者的電腦和手機(jī)更米,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來抱环,“玉大人壳快,你說我怎么就攤上這事≌虿荩” “怎么了眶痰?”我有些...
    開封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長梯啤。 經(jīng)常有香客問我竖伯,道長,這世上最難降的妖魔是什么因宇? 我笑而不...
    開封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任七婴,我火速辦了婚禮,結(jié)果婚禮上察滑,老公的妹妹穿的比我還像新娘打厘。我一直安慰自己,他們只是感情好贺辰,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開白布户盯。 她就那樣靜靜地躺著,像睡著了一般饲化。 火紅的嫁衣襯著肌膚如雪莽鸭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天吃靠,我揣著相機(jī)與錄音硫眨,去河邊找鬼。 笑死巢块,一個(gè)胖子當(dāng)著我的面吹牛礁阁,可吹牛的內(nèi)容都是我干的巧号。 我是一名探鬼主播,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼氮兵,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼裂逐!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起泣栈,我...
    開封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤卜高,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后南片,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體掺涛,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年疼进,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了薪缆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡伞广,死狀恐怖拣帽,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情嚼锄,我是刑警寧澤减拭,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站区丑,受9級(jí)特大地震影響拧粪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜沧侥,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一可霎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧宴杀,春花似錦癣朗、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至主经,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間庭惜,已是汗流浹背罩驻。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留护赊,地道東北人惠遏。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓砾跃,卻偏偏與公主長得像,于是被迫代替她去往敵國和親节吮。 傳聞我的和親對(duì)象是個(gè)殘疾皇子抽高,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 如何使用python將大量數(shù)據(jù)導(dǎo)出到Excel中的小技巧 (1) 問題描述:為了更好地展示數(shù)據(jù),Excel格式的...
    小天真_5eeb閱讀 10,722評(píng)論 6 22
  • >最近遇到一個(gè)情景透绩,就是定期生成并發(fā)送服務(wù)器使用情況報(bào)表翘骂,按照不同維度統(tǒng)計(jì),涉及python對(duì)excel的操作帚豪,上...
    有料美拓閱讀 6,836評(píng)論 0 0
  • 注釋較為全面狸臣,參照注釋使用即可莹桅。 庫的安裝: 從官網(wǎng)下載源碼后,解壓烛亦,cmd進(jìn)到對(duì)應(yīng)目錄下诈泼,執(zhí)行 python s...
    LeoceanY桑閱讀 2,163評(píng)論 0 1
  • 上山篇 不入山林 無法得知秋日漸涼 微陡的斜坡 承載著人們辛勤的腳印 汗意涌起 卻又有山風(fēng)給我梳理 煩躁之意就這樣...
    沂得山閱讀 398評(píng)論 4 2
  • 2017年,我們從七月份的培訓(xùn)考核煤禽,八月份的研讀教材铐达,九月的課例分析,十月份的培訓(xùn)幾何畫板呜师,數(shù)學(xué)工具的操作等等娶桦,一...
    鳥兒_04fa閱讀 188評(píng)論 0 0