python讀寫excel的方式有很多,不同的模組在讀寫的講法上稍有區別:
用xlrd和xlwt進行excel讀寫;
用openpyxl進行excel讀寫;
用pandas進行excel讀寫;
現在手上也有一些Python的資料視訊,大家可以加 q u n 227- 435 -450 免費獲取資料哈~為了方便演示,我這裡新建了一個data.xlsx檔案,第一個工作表sheet1區域“A1:F5”的內容如下,用於測試讀excel的程式碼:
1 利用xlrd和xlwt進行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(`表格總行數`,nrows)
ncols = sheet1.ncols
print(`表格總列數`,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)
執行結果
表格總行數 5
表格總列數 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`)
程式執行後,新建excelwrite.xls工作簿並插入text工作表,A1的內容為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)
執行結果:
第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`)
程式執行後,新建new.xls工作簿並插入sheet工作表,A1的內容為hi,wwu。
3 利用pandas讀取excel
Pandas的名稱來自於皮膚資料(panel data)和python資料分析(data analysis)。
首先要安裝pandas模組,相對來說,安裝pandas模組要複雜一些。
如果用pip install pandas安裝後執行出錯,可以考慮安裝以前的版本:pip install pandas==0.22
pandas是一個資料處理的包,本身提供了許多讀取檔案的函式,像read_csv(讀取csv檔案),read_excel(讀取excel檔案)等,只需一行程式碼就能實現檔案的讀取
3.1 讀excel
主要程式碼如下,就1行程式碼搞定,注意這裡的data是DataFrame型別:
import pandas as pd
df = pd.read_excel(r`data.xlsx`,sheetname=0)
print(df.head())
執行結果:
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”)
程式執行後,將新建(或替換)new.xlsx檔案,並在工作表sheet1的A1:D4區域中儲存內容如下:
至此,我們就完成了excel的讀寫。總的來說,這3種方法都很簡單,尤其是第3種方法,1行程式碼就搞定,在資料處理中,經常會用到pandas這個包(該包可以處理眾多常見的資料儲存格式,如CSV、JSON等),功能很強大,當然還有許多其他的包也可以完成excel的讀寫