国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python 使用 openpyxl 處理 Excel 教程

這篇具有很好參考價(jià)值的文章主要介紹了python 使用 openpyxl 處理 Excel 教程。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

前言

python 操作excel 的庫(kù)有很多 ,有的庫(kù)只能讀取 xsl 格式,比如 xlrd 庫(kù);
有的庫(kù)只能寫 xsl 格式,比如 xlwt 庫(kù);
有的只能讀寫 xslx 格式,比如 openpyxl 庫(kù) 。

綜合各庫(kù)及 xslx 格式比較常見(jiàn),所以本文主要講解 openpyxl 庫(kù)對(duì) xslx 格式的 excel 操作。

一、安裝openpyxl庫(kù)

pip install openpyxl

二、新建excel及寫入單元格

1.創(chuàng)建一個(gè)xlsx格式的excel文件并保存

from openpyxl import Workbook

# 創(chuàng)建一個(gè)工作表
wb = Workbook()
# 保存為本地excel文件
wb.save("F:\pythonTest\sample.xlsx")

2.保存成流(stream)

例如當(dāng)使用 Pyramid, Flask 或 Django 等 web 應(yīng)用程序時(shí),如果想把文件保存成流,可以使用 NamedTemporaryFile( )方法

from tempfile import NamedTemporaryFile
from openpyxl import Workbook

wb = Workbook()
with NamedTemporaryFile() as tmp:
     wb.save(tmp.name)
     tmp.seek(0)
     stream = tmp.read()

3.寫入單元格

from openpyxl import Workbook

wb = Workbook()
# 創(chuàng)建第一個(gè)sheet
sheet = wb.active

# 方式一 在第1行第1列的單元格寫入111
sheet['A1'] = 111
# 方式二 在第1行第1列的單元格寫入111
# sheet.cell(row=1, column=1, value=111)
# 方式三 先獲取到單元格,再將數(shù)據(jù)寫入value屬性
# cell = sheet['A1']
# cell.value = 111

wb.save("F:\pythonTest\sample.xlsx")

下面的簡(jiǎn)單示例將新建一個(gè) xlsx 文件并在里面新建 3 個(gè) sheet 工作表,每個(gè) sheet 工作表都寫上一點(diǎn)數(shù)據(jù):

from openpyxl import Workbook

# 初始化
wb = Workbook()

# 創(chuàng)建第一個(gè)sheet
sheet = wb.active
# 在第1行第1列的單元格寫入111
sheet['A1'] = 111

# 創(chuàng)建一個(gè)新的sheet
sheet1 = wb.create_sheet()
# 在這個(gè)新的sheet中第2行第2列的單元格寫入222
sheet1['B2'] = 222

# 創(chuàng)建一個(gè)叫"第3個(gè)工作表"的新sheet
sheet3 = wb.create_sheet("第3個(gè)工作表")
# 在這個(gè)新的sheet中第3行第3列的單元格寫入333
sheet3['C3'] = 333

# 保存本地excel文件中
wb.save("F:\pythonTest\sample.xlsx")

openexcel python,python,excel,python,開(kāi)發(fā)語(yǔ)言,openpyxl

三、創(chuàng)建sheet工作表及操作

1.創(chuàng)建新的工作表

一個(gè)工作表至少有一個(gè)工作表,你可以通過(guò) Workbook.active 來(lái)創(chuàng)建第一個(gè)sheet

sheet = wb.active

創(chuàng)建新的帶有名字的工作表

# 在結(jié)尾插入一個(gè)叫 "我的sheet1" 的sheet
sheet1 = wb.create_sheet("我的sheet1") 
# 或者在最開(kāi)始插入一個(gè)叫 "我的sheet12" 的sheet
sheet2 = wb.create_sheet("我的sheet12", 0)
# 或者在倒數(shù)第二的位置插入一個(gè)叫 "我的sheet13" 的sheet
sheet3 = wb.create_sheet("我的sheet13", -1) 

2.刪除指定工作表

# 刪除名字是 "我的sheet13" 的工作表
wb.remove(wb['3號(hào)sheet'])

3.修改sheet工作表的名稱

# 在結(jié)尾插入一個(gè)叫 "我的sheet1" 的工作表
sheet1 = wb.create_sheet("我的sheet1") 
# 將"我的sheet1" 的工作表名字改為"first"
sheet1.title = "first"

4.獲取所有工作表的名稱

print(wb.sheetnames) #['Sheet', '我的sheet1', 'first', 'second']

5.切換工作表

current = wb["first"]
# 切換到 "second" 工作表
current = wb["second"]

6.遍歷所有sheet工作表

for s in wb:
     print(s.title)

7.復(fù)制sheet工作表

sheet = wb.active
sheetNew = wb.copy_worksheet(sheet)

四、讀取excel和單元格

1.讀取 excel 文件

讀取 excel 文件并打印所有的 sheet 工作表名稱

from openpyxl import load_workbook

wb = load_workbook("F:\pythonTest\sample.xlsx")
print(wb.sheetnames) # ['Sheet', 'Sheet1', 'New Title']

2.讀取單元格

from openpyxl import load_workbook

wb = load_workbook("F:\pythonTest\sample.xlsx")
# 獲取"New Title" 這個(gè)sheet工作表
sheet = wb["第3個(gè)工作表"]

# 方式一 獲取 "C3"這個(gè)單元格
cell = sheet["C3"]
# 方式二 獲取 第3行3列 這個(gè)單元格
# cell = sheet.cell(row=3, column=3)

# 打印單元格的值
print(cell.value)

3.獲取某一行某一列的數(shù)據(jù)

from openpyxl import load_workbook

wb = load_workbook("F:\pythonTest\sample1.xlsx")
sheet = wb["Sheet"]

# 獲取第2行的單元格數(shù)據(jù)并打印
row = sheet['2']
row_data = []
for cell in row:
    row_data.append(cell.value)
print(row_data)

# 獲取第3列的單元格數(shù)據(jù)并打印
col = sheet['C']
col_data = []
for cell in col:
    col_data.append(cell.value)
print(col_data)


4.遍歷所有單元格

from openpyxl import load_workbook

wb = load_workbook("F:\pythonTest\sample.xlsx")
# 遍歷所有的sheet工作表
for sheet in wb:
    # 獲取當(dāng)前sheet工作表的行數(shù)據(jù)
    rows = tuple(sheet.rows)
    # 遍歷每一行
    for row in rows:
        # 遍歷每一個(gè)單元格
        for cell in row:
            print(cell.value)

上面使用了sheet.rows 獲取行數(shù)據(jù),如果要獲取列數(shù)據(jù)可以使用 sheet.columns

5.遍歷指定行列范圍的單元格

方式一:使用切片方式

from openpyxl import load_workbook

wb = load_workbook("F:\pythonTest\sample.xlsx")
# 獲取叫"Sheet"的工作表
sheet = wb["Sheet"]
# 獲取叫'A2'到'C4'范圍的所有單元格
rows = sheet['A2':'C4']
for cells in rows:
    for cell in cells:
        print(cell.value, end=" ")
    print()

方式二:使用iter_rows方法

from openpyxl import load_workbook

wb = load_workbook("F:\pythonTest\sample.xlsx")
# 獲取叫"Sheet"的工作表
sheet = wb["Sheet"]
# 獲取 2到4行,1到3列 范圍的所有單元格
for row in sheet.iter_rows(min_row=2, min_col=1, max_col=3, max_row=4):
    for cell in row:
        print(cell.value, end=" ")
    print()

五、合并、拆分單元格和插入刪除行列

1.合并單元格

合并單元格時(shí),除了左上角的單元格內(nèi)容,其他都選中范圍單元格將從工作表中刪除

from openpyxl import load_workbook

wb = load_workbook("F:\pythonTest\sample.xlsx")
# 獲取叫"Sheet"的工作表
sheet = wb["Sheet"]

# 方式一 合并 A2到C4 范圍的單元格
sheet.merge_cells('A2:C4')
# 方式二 合并 2到4行,1到3列 范圍的所有單元格
# sheet.merge_cells(start_row=2, start_column=1, end_row=4, end_column=3)

wb.save("F:\pythonTest\sample.xlsx")

openexcel python,python,excel,python,開(kāi)發(fā)語(yǔ)言,openpyxl

2.拆分合并的單元格

from openpyxl import load_workbook

wb = load_workbook("F:\pythonTest\sample.xlsx")
# 獲取叫"Sheet"的工作表
sheet = wb["Sheet"]

# 方式一 拆分 A2到C4 范圍的單元格
sheet.unmerge_cells('A2:C4')
# 方式二 拆分 2到4行,1到3列 范圍的所有單元格
ws.unmerge_cells(start_row=2, start_column=1, end_row=4, end_column=4)

wb.save("F:\pythonTest\sample.xlsx")

3.插入行和列

(1)插入單行單列

from openpyxl import load_workbook

wb = load_workbook("F:\pythonTest\sample.xlsx")
sheet = wb["Sheet"]
# 在第3行前插入一行
sheet.insert_rows(3)
# 在第2列前插入一列
sheet.insert_cols(2)
wb.save("F:\pythonTest\sample.xlsx")

(2)插入多行多列

from openpyxl import load_workbook

wb = load_workbook("F:\pythonTest\sample.xlsx")
sheet = wb["Sheet"]
# 在第3行前插入四行
sheet.insert_rows(3, 4)
# 在第2列前插入五列
sheet.insert_cols(2, 5)
wb.save("F:\pythonTest\sample.xlsx")

4.刪除行和列

(1)刪除單行單列

from openpyxl import load_workbook

wb = load_workbook("F:\pythonTest\sample.xlsx")
sheet = wb["Sheet"]
# 刪除第3行
sheet.delete_rows(3)
# 刪除第2列
sheet.delete_cols(2)
wb.save("F:\pythonTest\sample.xlsx")

(2)刪除多行多列

from openpyxl import load_workbook

wb = load_workbook("F:\pythonTest\sample.xlsx")
sheet = wb["Sheet"]
# 從第3行前開(kāi)始刪除四行
sheet.delete_rows(3, 4)
# 從第2列開(kāi)始刪除五列
sheet.delete_cols(2, 5)
wb.save("F:\pythonTest\sample.xlsx")

六、單元格對(duì)齊

1. 對(duì)齊方式與換行

# horizontal是水平方向,vertical 是垂直方向
Alignment(horizontal="center", vertical="center")
# 默認(rèn)單元格填滿了是不換行的,如果要自動(dòng)換行可使用 wrap_text=True
Alignment(horizontal="center", vertical="center", wrap_text=True)

horizontal 水平對(duì)齊可選值如下

參數(shù)值 對(duì)齊方式
left 左對(duì)齊
center 左右居中
right 右對(duì)齊
fill 填滿對(duì)齊
distributed 分散對(duì)齊
centerContinously 連續(xù)居中
justify 兩端對(duì)齊
general 一般對(duì)齊

vertical 垂直對(duì)齊可選值如下

參數(shù)值 對(duì)齊方式
top 上對(duì)齊
center 左右居中
bottom 下對(duì)齊
distributed 分散對(duì)齊
justify 兩端對(duì)齊

2.單元格對(duì)齊

from openpyxl import Workbook
from openpyxl.styles import Alignment

wb = Workbook()
sheet = wb.active

# 在第1行第1列的那個(gè)單元格寫入123546
cell = sheet['A1']
cell.value = 123546
# 將該單元格對(duì)齊方式設(shè)置為水平和垂直都居中
cell.alignment = Alignment(horizontal="center", vertical="center")

wb.save("F:\pythonTest\sample.xlsx")

3.合并后的單元格設(shè)置對(duì)齊方式

可以改變左上單元格的對(duì)齊方式、邊框等屬性來(lái)改變整個(gè)合并單元格的對(duì)齊方式、邊框等屬性。

from openpyxl.styles import Alignment
from openpyxl import load_workbook

wb = load_workbook("F:\pythonTest\sample.xlsx")
# 獲取叫"Sheet"的工作表
sheet = wb["Sheet"]

#  合并 A2到C4 范圍的單元格
sheet.merge_cells('A2:C4')
# 改變左上單元格的對(duì)齊方式來(lái)改變合并單元格的對(duì)齊方式
cell = sheet['A2']
cell.alignment = Alignment(horizontal="center", vertical="center")

wb.save("F:\pythonTest\sample.xlsx")

七、單元格邊框設(shè)置

1. 邊框線條粗細(xì)、顏色設(shè)置

(1)你可以對(duì)單元格上下左右的邊框進(jìn)行設(shè)置虛線和實(shí)線

Border(
    left=Side(style='thick'),
    bottom=Side(style='mediumDashed'),
    right=Side(style='thin'),
    top=Side(style='dashed'))

其中thin是細(xì)實(shí)線,thick是粗實(shí)線,dashed是細(xì)虛線,mediumDashed是粗虛線.
全部邊框線條可選的有如下:

'dashDot','dashDotDot', 'dashed','dotted',
'double','hair', 'medium', 'mediumDashDot', 
'mediumDashDotDot','mediumDashed', 'slantDashDot',
'thick', 'thin'

(2)你還可以使用 color 參數(shù)調(diào)整單元格上下左右邊框的顏色

Border(
    left=Side(style='thick', color='00000000'),
    bottom=Side(style='mediumDashed', color='00000000'),
    right=Side(style='thin', color='00000000'),
    top=Side(style='dashed', color='00000000'))

可取的顏色參考如下:

openexcel python,python,excel,python,開(kāi)發(fā)語(yǔ)言,openpyxl

2.設(shè)置單個(gè)單元格邊框和顏色

from openpyxl import Workbook
from openpyxl.styles import Border, Side

wb = Workbook()
sheet = wb.active

# 在第1行第1列的那個(gè)單元格寫入123546
cell = sheet['B2']
cell.value = 123546
# 設(shè)置該單元格邊框和顏色
cell.border = Border(
    left=Side(style='thick', color='00000000'),
    bottom=Side(style='mediumDashed', color='00000000'),
    right=Side(style='thin', color='00000000'),
    top=Side(style='dashed', color='00000000'))

wb.save("F:\pythonTest\sample1.xlsx")

3.設(shè)置多個(gè)單元格整體邊框和顏色

想要整體添加邊框,有兩種方式:

(1) 先合并單元格再對(duì)左上角的單元格進(jìn)行操作,但往往這些單元格都有不同的數(shù)據(jù),難以進(jìn)行合并。
(2) 遍歷所有的單元格,分別賦予屬性。這種方法比較適用于為所有的單元格賦予相同的屬性。

八、設(shè)置單元格背景顏色和文字字體

1.設(shè)置單元格背景顏色

from openpyxl import Workbook
from openpyxl.styles import PatternFill

wb = Workbook()
sheet = wb.active

# 在第1行第1列的那個(gè)單元格寫入123546
cell = sheet['B2']
cell.value = 123546
# 使用fgColor屬性16進(jìn)制顏色填充
cell.fill = PatternFill('solid', fgColor="FF00FF")

wb.save("F:\pythonTest\sample1.xlsx")

2.設(shè)置字體、字體的粗細(xì)、大小、顏色

from openpyxl import Workbook
from openpyxl.styles import Font

wb = Workbook()
sheet = wb.active

# 在第1行第1列的那個(gè)單元格寫入123546
cell = sheet['B2']
cell.value = 123546
# 設(shè)置字體樣式:  字體大小為30, bold加粗,字體顏色 00FFFF 16進(jìn)制顏色
cell.font = Font(u'微軟雅黑', size=30, bold=True, color="00FFFF")

wb.save("F:\pythonTest\sample1.xlsx")

九、設(shè)置行高和列寬

from openpyxl import Workbook

wb = Workbook()
sheet = wb.active

# 設(shè)置第1行高度為60
sheet.row_dimensions[1].height = 60
# 設(shè)置B列寬度為30
sheet.column_dimensions["B"].width = 30

wb.save("F:\pythonTest\sample1.xlsx")

參考:
Tutorial文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-694249.html

到了這里,關(guān)于python 使用 openpyxl 處理 Excel 教程的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Python使用openpyxl讀寫excel文件

    Python使用openpyxl讀寫excel文件

    需求:讀入sample.xlsx中的信息,通過(guò)分析其中的身份證號(hào)信息,得到每個(gè)人的出生日期,性別,年齡,所在省份,星座,屬相等等,將結(jié)果寫入到另一個(gè)excel文件中。 首先,要使用openpyxl第三方庫(kù)需要安裝,安裝方法如下: 程序一開(kāi)頭為了能使用第三方庫(kù),需要先導(dǎo)入 讀入

    2024年02月09日
    瀏覽(25)
  • python使用OpenPyXl庫(kù)對(duì)Excel進(jìn)行操作

    參考:知乎文章 / OpenPyXL教程 / 博客園 目錄 python使用OpenPyXl庫(kù)對(duì)Excel進(jìn)行操作 1. 基本概念 2. 判斷文件是否存在 3. 創(chuàng)建和打開(kāi)Excel文件 3.1. 創(chuàng)建Excel文件 3.2. 打開(kāi)已有的Excel文件 4. 儲(chǔ)存數(shù)據(jù) 5. sheet操作 6. cell操作 在OpenPyXl中的基本改變跟Excel文件中是完全一致的。 workbook sheet c

    2024年02月01日
    瀏覽(17)
  • python使用openpyxl添加圖片到excel文件中

    python使用openpyxl添加圖片到excel文件中

    圖片只能保存在某個(gè)sheet頁(yè)面中,因此首先打開(kāi)sheet頁(yè)面: 然后創(chuàng)建一個(gè)圖片: 最后保存即可: 最后的效果如下:

    2024年02月22日
    瀏覽(19)
  • Python:使用openpyxl讀取Excel文件轉(zhuǎn)為json數(shù)據(jù)

    Python:使用openpyxl讀取Excel文件轉(zhuǎn)為json數(shù)據(jù)

    openpyxl - A Python library to read/write Excel 2010 xlsx/xlsm files 文檔 https://openpyxl.readthedocs.io/en/stable/ https://pypi.org/project/openpyxl/ 安裝 環(huán)境 讀取文件示例:將Excel文件讀取為json數(shù)據(jù) 有如下一個(gè)文件 data.xlsx 實(shí)現(xiàn)代碼 輸出讀取的json數(shù)據(jù) 讀寫示例

    2024年02月15日
    瀏覽(34)
  • python: openpyxl操作Excel

    想要在文件中插入圖片文件,需要安裝pillow,安裝文件:PIL-fork-1.1.7.win-amd64-py2.7.exe · font(字體類):字號(hào)、字體顏色、下劃線等 · fill(填充類):顏色等 · border(邊框類):設(shè)置單元格邊框 · alignment(位置類):對(duì)齊方式 · number_format(格式類):數(shù)據(jù)格式 · protection(保護(hù)類):寫保護(hù)

    2024年02月08日
    瀏覽(25)
  • python—openpyxl操作excel詳解

    python—openpyxl操作excel詳解

    openpyxl屬于第三方模塊,在python中用來(lái)處理excel文件。 可以對(duì)excel進(jìn)行的操作有:讀寫、修改、調(diào)整樣式及插入圖片等。 但只能用來(lái)處理【?.xlsx】?后綴的excel文件。 使用前需要先安裝,安裝方法: 注: 一個(gè)excel文件可看做是一個(gè)工作簿,工作簿中的一個(gè)Sheet就是一個(gè)工作表

    2024年02月04日
    瀏覽(25)
  • python基于openpyxl操作excel

    環(huán)境: python3.11 系統(tǒng): ubuntu20.04 使用依賴: openpyxl 跳轉(zhuǎn)官網(wǎng) 2.1 創(chuàng)建工作簿 工作簿至少要包含一個(gè)工作表(sheet), 可以使用如下來(lái)獲取它 也可以創(chuàng)建自定義名稱的工作表 2.2 查看工作簿下的所有工作表 2.3 訪問(wèn)/修改某個(gè)單元格數(shù)據(jù) 比如說(shuō)修改A1單元格位置的參數(shù) 2.4 保存為文件 2

    2024年02月20日
    瀏覽(25)
  • python_通過(guò)openpyxl讀寫Excel

    python_通過(guò)openpyxl讀寫Excel

    openpyxl模塊可實(shí)現(xiàn)對(duì)excel文件的讀、寫和修改,使用之前需要先安裝該模塊。 Excel演示內(nèi)容,整個(gè)Excel文件稱為工作簿,工作簿中的每個(gè)頁(yè)稱為工作表,工作表又由單元格組成。 結(jié)果:

    2024年02月11日
    瀏覽(26)
  • Python模塊openpyxl & 操作Excel文件

    Python模塊openpyxl & 操作Excel文件

    簡(jiǎn)介 ????????openpyxl是一個(gè)用于讀取和編寫Excel 2010 xlsx/xlsm/xltx/xltm文件的Python庫(kù)。openpyxl以Python語(yǔ)言和MIT許可證發(fā)布。 ????????openpyxl可以處理Excel文件中的絕大多數(shù)內(nèi)容,包括圖表、圖像和公式。它可以處理大量數(shù)據(jù),支持Pandas和NumPy庫(kù)導(dǎo)入和導(dǎo)出數(shù)據(jù)。Openpyxl還支持自

    2024年02月10日
    瀏覽(31)
  • python-excel自動(dòng)化-openpyxl

    python-excel自動(dòng)化-openpyxl

    openpyxl不進(jìn)行計(jì)算; 它將公式寫入單元格。 openpyxl庫(kù)支持各種圖表:條形圖,折線圖,面積圖,氣泡圖,散點(diǎn)圖和餅圖。 ?。。penpyxl目前只支持在工作表內(nèi)創(chuàng)建圖表?,F(xiàn)有工作簿中的圖表將丟失。 以下設(shè)置會(huì)影響不同的圖表類型。 通過(guò)將類型分別設(shè)置為col或bar,在垂直條

    2024年04月27日
    瀏覽(21)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包