python使用OpenPyXl庫(kù)對(duì)Excel進(jìn)行操作
參考:知乎文章 / OpenPyXL教程 / 博客園
-
python使用OpenPyXl庫(kù)對(duì)Excel進(jìn)行操作
- 1. 基本概念
- 2. 判斷文件是否存在
-
3. 創(chuàng)建和打開Excel文件
- 3.1. 創(chuàng)建Excel文件
- 3.2. 打開已有的Excel文件
- 4. 儲(chǔ)存數(shù)據(jù)
- 5. sheet操作
- 6. cell操作
1. 基本概念
在OpenPyXl中的基本改變跟Excel文件中是完全一致的。
workbook | sheet | cell |
---|---|---|
工作表 | 工作簿 | 單元格 |
相當(dāng)于是一個(gè)Excel文件 | 每個(gè)文件都都可以包含多個(gè)表單 | 每個(gè)可以填寫數(shù)據(jù)的小格就是單元格 |
2. 判斷文件是否存在
判斷文件是否存在的方法并沒(méi)有用到OpenPyXl庫(kù),但是在實(shí)際場(chǎng)景中比較容易遇見(jiàn),所以我也就補(bǔ)充在了這里。
例如,有時(shí)判斷該文件是否存在,如果存在就在文件中添加新行進(jìn)行數(shù)據(jù)寫入,如果不存在就先創(chuàng)建一個(gè)Excel文件,再進(jìn)行數(shù)據(jù)寫入。
file_name = 'test.xlsx'
if os.path.exists(file_name):
print("文件存在")
else:
print("文件不存在")
3. 創(chuàng)建和打開Excel文件
3.1. 創(chuàng)建Excel文件
from openpyxl import Workbook
import os
file_name = 'test.xlsx'
wb = Workbook() # 創(chuàng)建一個(gè)workbook對(duì)象
ws = wb.active # 創(chuàng)建workbook會(huì)將第一個(gè)sheet激活,通過(guò) wb.active獲取引用
wb.save(file_name)
3.2. 打開已有的Excel文件
from openpyxl import load_workbook
import os
file_name = 'test.xlsx'
wb = load_workbook(file_name) # 無(wú)非是調(diào)用的函數(shù)存在區(qū)別
ws = wb.active
wb.save(file_name)
4. 儲(chǔ)存數(shù)據(jù)
我感覺(jué)這部分內(nèi)容并不足以作為一個(gè)單獨(dú)的標(biāo)題,但是我用到了,所以單獨(dú)把它拎出來(lái)寫了一下。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-790585.html
ws['A1'] = 123.11 # 調(diào)整對(duì)應(yīng)單元格的內(nèi)容
ws.append([1, 2, 3]) # 在Excel表中添加新行
5. sheet操作
通過(guò)一段代碼來(lái)展示sheet操作相關(guān)的功能:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-790585.html
- 創(chuàng)建sheet
- 修改sheet名稱
- 設(shè)置sheet標(biāo)簽背景色
- 查看所有sheet的名稱
- 獲取sheet
- 復(fù)制sheet
- 刪除sheet
from openpyxl import load_workbook
import os
file_name = 'test.xlsx'
wb = load_workbook(file_name)
ws1 = wb.create_sheet("sheet") # 創(chuàng)建sheet,默認(rèn)插在后面
ws1.title = "新表單" # 設(shè)置sheet標(biāo)題
ws2 = wb.create_sheet("mysheet", 0) # 創(chuàng)建一個(gè)sheet,插入到最前面
ws2.sheet_properties.tabColor = "1072BA" # 設(shè)置sheet標(biāo)簽背景色
ws3 = wb.copy_worksheet(ws2) # ws3為ws2的復(fù)制
print(wb.sheetnames) # 查看該文件所有的sheet名稱
ws4 = wb.get_sheet_by_name(u"新表單") # 根據(jù)名稱獲取sheet
wb.remove(ws1) # 刪除sheet ws1
6. cell操作
- 單獨(dú)操作
- 批量操作
- 合并單元格
from openpyxl import load_workbook
import os
file_name = 'test.xlsx'
wb = load_workbook(file_name)
ws = wb.active
c = ws['A1'] # 通過(guò)單元格名稱訪問(wèn)
d = ws.cell(row=4, column=2, value=10) # 通過(guò)行列坐標(biāo)訪問(wèn)
# 操作單列
for cell in ws["A"]:
print(cell.value)
# 操作單行
for cell in ws["1"]:
print(cell.value)
# 操作多列
for column in ws['A:C']:
for cell in column:
print(cell.value)
# 操作多行
for row in ws['1:3']:
for cell in row:
print(cell.value)
# 指定范圍
for row in ws['A1:C3']:
for cell in row:
print(cell.value)
# 所有行
for row in ws.iter_rows():
for cell in row:
print(cell.value)
# 所有列
for column in ws.iter_cols():
for cell in column:
print(cell.value)
# 合并
ws.merge_cells('A2:D2')
# 解除合并
ws.unmerge_cells('A2:D2')
# 合并
ws.merge_cells(start_row=2,start_column=1,end_row=2,end_column=4)
# 解除合并
ws.unmerge_cells(start_row=2,start_column=1,end_row=2,end_column=4)
到了這里,關(guān)于python使用OpenPyXl庫(kù)對(duì)Excel進(jìn)行操作的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!