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í)路線圖