今天是年初七,大家快要上班了,來和Paradoxical一起學習一下如何用Python操作Excel吧~
Paradoxical在春節假期也沒有閒着,繼續學習着Python,其中學會用Python操作Excel就是最大的收穫。
首先我們要安裝openpyxl庫,在命令行輸入“pip install openpyxl”即可。接下來說一下3個比較關鍵的對象。
工作簿對象Workbook
一個工作簿就是一個Excel文件,裏面可以包含多個工作表。
工作表對象Worksheet
一個工作表對象就是工作簿裏的表,裏面包含多個單元格。
單元格對象Cell
單元格就是Excel存放數據的地方。
下面我們來學習一下openpyxl的用法。首先新建一個Excel文件,在裏面寫入一些測試用的數據。
打開工作簿文件
可以使用load_workbook()或者Workbook()打開一個已有的工作簿。
import openpyxl as xl
#方法1
wb = xl.load_workbook('test.xlsx')
#方法2
wb2 = xl.Workbook('test.xlsx')
工作表操作
工作簿的active屬性或者get_active_sheet()可獲取打開Excel表時看到的工作表。
wb.active
wb.get_active_sheet()
此外,還可以用get_sheet_by_name()根據工作表的名字獲取工作表。
wb.get_sheet_by_name('Sheet1')
創建工作表。
#默認以Sheet + 數字的形式創建一個工作表
wb.create_sheet()
#指定工作表的名字
wb.create_sheet('newSheet')
#指定工作表的名字和位置
wb.create_sheet('newSheet', 0)
查看和修改工作表的名字。
#該屬性返回一個列表
wb.sheetnames
#也可以用迭代的方式查看
for sheet in wb:
print(sheet.title)
#可以直接對工作表對象修改
wb.active.title = 'Sheet0'
刪除工作表。
#方法1
Sheet0 = wb.get_sheet_by_name('Sheet0')
wb.remove(Sheet0)
#方法2
del wb['Sheet0']
獲取工作表最大行列數。
#最大行數
wb.active.max_row
#最大列數
wb.active.max_column
單元格操作
獲取單個單元格。
#第一個參數是行,第二個參數是列
wb.active.cell(2, 1)
#通過單元格名字獲取
wb.active['A1']
獲取多個單元格。
#這種方法冒號前需要區域左上角和右下角的單元格
wb.active['A1': 'B2']
#獲取單列的單元格
wb.active['A']
#獲取多列的單元格
wb.active['A:C']
#獲取單行的單元格
wb.active[1]
#獲取多行的單元格
wb.active[1:2]
獲取和修改單元格的值。
#獲取單元格的值
wb.active['A1'].value
#修改單元格的值
wb.active['A1'].value = 3
保存爲文件。
#需要指定文件路徑wb.save('test.xlsx')