Python|讀、寫Excel檔案(三種模組三種方式)

糖寶發表於2019-02-16

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的讀寫

相關文章