
大家在工作和生活中經常會遇到處理EXCEL表格的時候,例如將一個EXCEL表格中的內容處理之后復制到另外一個EXCEL表格之中,或者大批量處理EXCEL,無論是哪種情況,如果我們不借助工具,自己一條條去處理的話,估計要耗費不少的時間和經歷。今天小編就教大家如何用python處理EXCEL,希望能幫助大家提高效率。
今天處理EXCEL需要用到python的第三方庫:openpyxl。
pip install openpyxl安裝。
下面來看一下具體步驟:
一、獲取EXCEL
1、讀取Excel文件
首先導入相關函數
from openpyxl import load_workbook
# 默認可以讀寫,如果有需要可以指定
write_only和read_only為True
wb = load_workbook('pythontab.xlsx')
默認打開的文件為可讀寫,若有需要可以指定參數read_only為True。
2、獲取工作表--Sheet
# 獲得所有sheet的名稱
print(wb.get_sheet_names())
# 根據sheet名稱獲取sheet
a_sheet = wb.get_sheet_by_name('Sheet1')
# 獲取sheet名稱
print(a_sheet.title)
# 獲得當前正在顯示的sheet, 也可以用
wb.get_active_sheet()
sheet = wb.active
3、獲取單元格
# 獲取某個單元格的值,觀察EXCEL發現也是先字母再數字的順序,也就是先列再行
b4 = sheet['B4']
# 分別返回
print(f'({b4.column}, {b4.row}) is {b4.value}') # 返回的數字就是int型
# 除了用下標的方式獲取之外,還能使用cell函數, 換成數字,這個表示B2
b4_too = sheet.cell(row=4. column=2)
print(b4_too.value)
4、獲取行和列
sheet.rows是生成器, 里面為每一行的數據,每一行又被一個tuple包裹。
sheet.columns類似,但是里面的每個tuple是每一列的數據。
# 由于按行,因此返回順序為A1. B1. C1
for row in sheet.rows:
for cell in row:
print(cell.value)
# A1. A2. A3這樣的順序
for column in sheet.columns:
for cell in column:
print(cell.value)
通過上述四步的代碼我們就能獲取所有單元格的數據。
二、將數據寫入Excel
1.工作表
首先導入WorkBook
from openpyxl import Workbook
wb = Workbook()
這樣,一個新的工作表就建好了,但是還沒被保存。
如果需要指定只寫模式,我們可以指定參數write_only=True。通常情況下,默認的可寫可讀模式就行了。
print(wb.get_sheet_names()) # 提供一個默認名稱為Sheet的工作表,如果是office2016新建提供默認名稱為Sheet1的工作表
# 直接進行賦值就能夠更改工作表的名稱
sheet.title = 'Sheet1'
# 新建一個工作表,我們可以指定索引,對其在工作簿中的位置進行合理安排
wb.create_sheet('Data', index=1) # 被安排到第二個工作表,index=0代表第一個位置
# 刪除某個工作表
wb.remove(sheet)
del wb[sheet]
2.寫入單元格
還能使用公式
# 直接給單元格賦值即可
sheet['A1'] = 'good'
# B9處寫入平均值
sheet['B9'] = '=AVERAGE(B2:B8)'
注意:若是讀取的時候,則需要加上data_only=True,這樣讀到B9返回的就是數字,假如不加這個參數,返回的就會是公式本身'=AVERAGE(B2:B8)'
3.append函數
能夠一次性添加多行數據,從第一行空白行開始寫入。
# 添加一行
row = [1 ,2. 3. 4. 5]
sheet.append(row)
# 添加多行
rows = [
['Number', 'data1', 'data2'],
[2. 40. 30],
[3. 40. 25],
[4. 50. 30],
[5. 30. 10],
[6. 25. 5],
[7. 50. 10],
]
注意:append函數只能按行寫入。
4.zip()函數
使用zip我們能夠按列寫入數據
list(zip(*rows))
# out
[('Number', 2. 3. 4. 5. 6. 7),
('data1', 40. 40. 50. 30. 25. 50),
('data2', 30. 25. 30. 10. 5. 10)]
說明一下:
list(zip(*rows)),首先*rows將列表打散,也可以說是填入了若干個參數,zip從每一個列表中提取第1個值并將其組合成一個tuple,再從每一個列表中提取第2個值,再組合成一個tuple,一直到最短的那個列表的最后一個值提取完畢時結束,其他較長列表的在這之后的值會被舍棄,也就相當于,最后的元組個數是由原來每個參數(可迭代對象)的最短長度決定的。例如:現在隨便刪掉一個值,最短列表長度為2.那么data2那一列的值就會被全部舍棄。
rows = [
['Number', 'data1', 'data2'],
[2. 40],
[3. 40. 25],
[4. 50. 30],
[5. 30. 10],
[6. 25. 5],
[7. 50. 10],
]
# out
[('Number', 2. 3. 4. 5. 6. 7), ('data1', 40. 40. 50. 30. 25. 50)]
最后zip返回的是zip對象,需要再使用list轉換下。
以上就是小編今天跟大家分享的如何使用python處理EXCEL表格的基本操作,獲取EXCEL和寫入EXCEL,希望對于大家大批量處理EXCEL有所幫助。python是一款功能強大的數據分析工具,我們平時工作中的很多事項都可以用python來進行處理。希望python能幫助大家從繁瑣的重復性工作中解脫粗來。
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
解碼數據基因:從數字敏感度到邏輯思維 每當看到超市貨架上商品的排列變化,你是否會聯想到背后的銷售數據波動?三年前在零售行 ...
2025-05-23在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25在當今數字化時代,數據分析師的重要性與日俱增。但許多人在踏上這條職業道路時,往往充滿疑惑: 如何成為一名數據分析師?成為 ...
2025-04-24