創(chuàng)建文件
Workbook() —?jiǎng)?chuàng)建 excel 文件
使用 openpyxl 創(chuàng)建文件。只需導(dǎo)入Workbook類
# 創(chuàng)建一個(gè) excel 文件
from openpyxl import Workbook
wb = Workbook()
Workbook.create_sheet() —?jiǎng)?chuàng)建 excel 工作簿
Workbook.create_sheet() 可以創(chuàng)建自定義名稱的工作簿。括號(hào)里的參數(shù)是工作簿名稱,還有一個(gè)參數(shù)是工作簿的位置,也可以不寫
from openpyxl import Workbook
wb = Workbook()
ws1 = wb.create_sheet('用戶信息表', 0) ?# 創(chuàng)建了一個(gè)用戶信息表并放在第一位,如下圖
可以創(chuàng)建多個(gè)工作簿,并且它們按順序排列。
Worksheet.title —給工作簿重命名
使用 Worksheet.title屬性更改表名稱
from openpyxl import Workbook
wb = Workbook() # 創(chuàng)建 excel 文件
ws1 = wb.create_sheet('用戶信息表', 0) # 創(chuàng)建工作簿用戶信息表放在第一位
ws2 = wb.create_sheet('bank_info') # 創(chuàng)建工作簿bank_info
ws1.title = 'user_info' # 更改工作簿用戶信息表的名稱
'''用代碼保存一下后,如下圖所示,用戶信息表 被改名成 user_info'''
?
ws.sheet_properties.tabColor = " " 修改標(biāo)題背景
from openpyxl import Workbook
wb = Workbook()
ws1 = wb.create_sheet('用戶信息表', 0)
ws1.sheet_properties.tabColor = 'FF6666' # 將標(biāo)題背景改為指定RRGGBB顏色代碼
'''用代碼保存一下后,如下圖所示'''
?
Workbook.sheetname —查看 excel 所有工作簿
返回包含 excel 文件下所有工作簿名稱的列表
from openpyxl import Workbook
wb = Workbook()
ws1 = wb.create_sheet('用戶信息表', 0)
print(wb.sheetnames)
打印結(jié)果 ['用戶信息表', 'Sheet']
Workbook.copy_worksheet() —?jiǎng)?chuàng)建工作表的副本
Workbook.copy_worksheet()方法可以在單個(gè)工作簿中創(chuàng)建工作表的副本。 僅復(fù)制單元格(包括值、樣式、超鏈接和注釋)和某些工作表屬性(包括尺寸、格式和屬性)。不會(huì)復(fù)制所有其他工作簿/工作表屬性 - 例如圖像、圖表。
獲取修改數(shù)據(jù)
訪問一個(gè)單元格
在 excel 中可以通過位置找到里面的內(nèi)容,同樣使用代碼也能通過位置找到內(nèi)容。
Worksheet[ ]
from openpyxl import Workbook
wb = Workbook()
ws1 = wb.create_sheet('用戶信息表', 0)
ws1['A1'] = 'XWenXiang' # ws1['A1'] 代表的是該表中的 A1 位置,我們可以將數(shù)據(jù)直接賦值給它
'''用代碼保存一下后,如下圖所示'''
Worksheet.cell()固定位置插入數(shù)據(jù)
----'除了直接獲取位置還可以使用 Worksheet.cell()方法'-----
from openpyxl import Workbook
wb = Workbook()
ws1 = wb.create_sheet('用戶信息表', 0)
ws1.cell(row=4, column=2, value=10)
此方法是通過指定坐標(biāo)的方式賦值,其中 row 參數(shù)代表行數(shù), column 代表列數(shù),value 是填入的數(shù)據(jù)。
'''用代碼保存一下后,如下圖所示'''
?
Worksheet.append()
Worksheet.append() 可以同時(shí)寫入多個(gè)數(shù)據(jù)。
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)' # 對(duì)A4和A5進(jìn)行求和并寫入到A6
訪問多個(gè)單元格
可以使用切片訪問單元格范圍
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)
打印結(jié)果:
('name', 'age', 'gender')
('XWenXiang', '15', 'man')
保存文件
保存工作簿最簡(jiǎn)單、最安全的方法是使用 對(duì)象的 Workbook.save() 方法 Workbook。
在前面的代碼示例都沒有將保存代碼加入。
wb = Workbook()
wb.save('balances.xlsx') # balances.xlsx 是保存的路徑,也就是文件名。
編輯完要保存才行。
打開文件
openpyxl.load_workbook() —讀取 excel 文件
和 Workbook 寫入一樣,使用 openpyxl.load_workbook() 可以打開現(xiàn)有工作簿。
from openpyxl import load_workbook # 導(dǎo)入 load_workbook
wb = load_workbook('ex_a.xlsx', read_only=True, data_only=True) # ex_a.xlsx是文件名
print(wb.sheetnames) # 打印所有工作簿的名稱
讀取工作簿數(shù)據(jù)
方式一
from openpyxl import load_workbook
wb = load_workbook('ex_a.xlsx', read_only=True, data_only=True)
ws = wb['用戶信息表'] # 拿到工作薄對(duì)象
print(ws['A1'].value) # 取出工作薄對(duì)象中 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: # 獲取每一行的數(shù)據(jù)
for data in row: # 獲取每一行中單元格的數(shù)據(jù)
print(data.value) # 打印單元格的值
如果是要加載并追加已經(jīng)存在的xlsx文檔,就要導(dǎo)入load_workbook
from openpyxl import load_workbook
# 加載已經(jīng)存在的excel文檔
workbook = load_workbook('test.xlsx')
# 獲取第一張工作表
sheet = workbook.active
# 添加一整行數(shù)據(jù)
sheet.append(['用戶id','性別','昵稱','市代碼','省代碼'])
# 保存
workbook.save()
加入數(shù)據(jù)話,一般采用的是一整行一整行的添加,非常方便高效
sheet.append(['用戶id','性別','昵稱','市代碼','省代碼'])
sheet.append(['78459037','1','Roger卓','441200','440000'])
讀取數(shù)據(jù)
讀取的話,同樣的先打開一個(gè)工作表
workbook = openpyxl.load_workbook("創(chuàng)新積分核心指標(biāo)所需數(shù)據(jù).xlsx")
# 可以使用workbook對(duì)象的sheetnames屬性獲取到excel文件中哪些表有數(shù)據(jù)
table = workbook.active
# 獲取最大列數(shù)
rows = table.max_row
# 獲取最大行數(shù)
cols = table.max_col
如果要獲取哪行哪列的數(shù)據(jù),然后使用這個(gè)就行了文章來源:http://www.zghlxwxcb.cn/news/detail-807057.html
table.cell(4, 5).value
即獲取第4行5列的數(shù)據(jù)文章來源地址http://www.zghlxwxcb.cn/news/detail-807057.html
到了這里,關(guān)于Python openpyxl模塊操作手冊(cè)(簡(jiǎn)單易懂)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!