日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Python第三方常用模塊openpyxl的簡單介紹_python

作者:XWenXiang ? 更新時間: 2022-10-25 編程語言

openpyxl

openpyxl模塊屬于第三方模塊,是一個在 python 中能夠處理 excel 文件的模塊,還有比較出名的是xlrd、xlwt 分別控制excel文件的讀寫,這倆個能夠兼容所有版本的文件。openpyxl 針對 excel 2003版本之前的兼容性可能不好 但是功能更加強大。

excel文件的版本及后綴
?? ?2003版本之前 excel的文件后綴是xls
?? ?2003版本之后 excel的文件后綴是xlsx、csv

創建文件

Workbook() —創建 excel 文件

使用 openpyxl 創建文件。只需導入Workbook類

from openpyxl import Workbook
wb = Workbook()
# 一個 excel 文件創建成功

Workbook.create_sheet() —創建 excel 工作簿

Workbook.create_sheet() 可以創建自定義名稱的工作簿。括號里的參數是工作簿名稱,還有一個參數是工作簿的位置,也可以不寫

from openpyxl import Workbook

wb = Workbook()
ws1 = wb.create_sheet('用戶信息表', 0)  # 創建了一個用戶信息表并放在第一位,如下圖

Sheet 工作簿是自動生成的

可以創建多個工作簿,并且它們按順序排列。

Worksheet.title —給工作簿重命名

使用 Worksheet.title屬性更改表名稱

from openpyxl import Workbook

wb = Workbook()  # 創建 excel 文件
ws1 = wb.create_sheet('用戶信息表', 0)  # 創建工作簿用戶信息表放在第一位
ws2 = wb.create_sheet('bank_info')  # 創建工作簿bank_info
ws1.title = 'user_info'  # 更改工作簿用戶信息表的名稱
'''用代碼保存一下后,如下圖所示'''

用戶信息表 被改名成 user_info

ws.sheet_properties.tabColor = " " 修改標題背景

from openpyxl import Workbook

wb = Workbook()
ws1 = wb.create_sheet('用戶信息表', 0)
ws1.sheet_properties.tabColor = 'FF6666'  # 將標題背景改為指定RRGGBB顏色代碼
'''用代碼保存一下后,如下圖所示'''

變得更好看了…

Workbook.sheetname —查看 excel 所有工作簿

返回包含 excel 文件下所有工作簿名稱的列表

from openpyxl import Workbook

wb = Workbook()
ws1 = wb.create_sheet('用戶信息表', 0)
print(wb.sheetnames)

打印結果 ['用戶信息表', 'Sheet']

Workbook.copy_worksheet() —創建工作表的副本

Workbook.copy_worksheet()方法可以在單個工作簿中創建工作表的副本。 僅復制單元格(包括值、樣式、超鏈接和注釋)和某些工作表屬性(包括尺寸、格式和屬性)。不會復制所有其他工作簿/工作表屬性 - 例如圖像、圖表。

獲取修改數據

訪問一個單元格

在 excel 中可以通過位置找到里面的內容,同樣使用代碼也能通過位置找到內容。

Worksheet[ ]

from openpyxl import Workbook

wb = Workbook()
ws1 = wb.create_sheet('用戶信息表', 0)
ws1['A1'] = 'XWenXiang'  # ws1['A1'] 代表的是該表中的 A1 位置,我們可以將數據直接賦值給它
'''用代碼保存一下后,如下圖所示'''

此時的 A1 被填入內容 XWenXiang

Worksheet.cell()

----'除了直接獲取位置還可以使用 Worksheet.cell()方法'-----
 
from openpyxl import Workbook

wb = Workbook()
ws1 = wb.create_sheet('用戶信息表', 0)
ws1.cell(row=4, column=2, value=10)  

此方法是通過指定坐標的方式賦值,其中 row 參數代表行數, column 代表列數,value 是填入的數據。
'''用代碼保存一下后,如下圖所示'''

在第2列第4行的位置填入數字10

Worksheet.append()

Worksheet.append() 可以同時寫入多個數據。

from openpyxl import Workbook

wb = Workbook()
ws1 = wb.create_sheet('用戶信息表', 0)
ws1.append(['name', 'age', 'gender'])
ws1.append(['XWenXiang', '15', 'man'])  # 要用 [] 括起來
'''用代碼保存一下后,如下圖所示'''

批量寫入數據,重復數據還可以加一個循環寫入。

公式

模塊里使用的公式和 excel 中的公式是一樣的

ws1['A6'] = '=sum(A4:A5)' # 對A4和A5進行求和并寫入到A6

訪問多個單元格

可以使用切片訪問單元格范圍

x = ws['A1':'C2']
x1 = ws['C']
x2 = ws['C:D']
x3 = ws[10]
x4 = ws[5:10]

Worksheet.values —獲取單元格值

from openpyxl import Workbook

wb = Workbook()
ws1 = wb.create_sheet('用戶信息表', 0)
ws1.append(['name', 'age', 'gender'])
ws1.append(['XWenXiang', '15', 'man'])

for row in ws1.values:
    print(row)

打印結果:
('name', 'age', 'gender')
('XWenXiang', '15', 'man')

保存文件

保存工作簿最簡單、最安全的方法是使用 對象的 Workbook.save() 方法 Workbook。

在前面的代碼示例都沒有將保存代碼加入。

wb = Workbook()
wb.save('balances.xlsx')  # balances.xlsx 是保存的路徑,也就是文件名。
編輯完要保存才行。

打開文件

openpyxl.load_workbook() —讀取 excel 文件

和 Workbook 寫入一樣,使用 openpyxl.load_workbook() 可以打開現有工作簿。

from openpyxl import load_workbook  # 導入 load_workbook 
wb = load_workbook('ex_a.xlsx', read_only=True, data_only=True)  # ex_a.xlsx是文件名
print(wb.sheetnames)  # 打印所有工作簿的名稱

讀取工作簿數據

方式一
	from openpyxl import load_workbook
	
	wb = load_workbook('ex_a.xlsx', read_only=True, data_only=True)
	ws = wb['用戶信息表']  # 拿到工作薄對象
	print(ws['A1'].value)  # 取出工作薄對象中 A1 位置的值

方式二
	from openpyxl import load_workbook
	
	wb = load_workbook('ex_a.xlsx', read_only=True, data_only=True)
	ws = wb['用戶信息表']
	print(ws.cell(row=2, column=1).value)  # 通過行與列的形式來取值
	
方式三(逐行讀?。?
	from openpyxl import load_workbook
	
	wb = load_workbook('ex_a.xlsx', read_only=True, data_only=True)
	ws = wb['用戶信息表']
	for row in ws.rows:  # 獲取每一行的數據
	    for data in row:  # 獲取每一行中單元格的數據
	        print(data.value)  # 打印單元格的值

?總結

原文鏈接:https://blog.csdn.net/m0_58987515/article/details/123899353

欄目分類
最近更新