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

Python模塊openpyxl & 操作Excel文件

這篇具有很好參考價值的文章主要介紹了Python模塊openpyxl & 操作Excel文件。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

簡介

????????openpyxl是一個用于讀取和編寫Excel 2010 xlsx/xlsm/xltx/xltm文件的Python庫。openpyxl以Python語言和MIT許可證發(fā)布。

????????openpyxl可以處理Excel文件中的絕大多數(shù)內(nèi)容,包括圖表、圖像和公式。它可以處理大量數(shù)據(jù),支持Pandas和NumPy庫導入和導出數(shù)據(jù)。Openpyxl還支持自定義矩陣和PivotTable,以及通過API自動化Excel應用程序。

目錄

1. 創(chuàng)建和打開工作簿

1.1. 創(chuàng)建工作表

1.2. 保存Excel文件

1.3. 關(guān)閉Excel工作簿

1.4. 獲取正在活動的表

1.5. 獲取表名

1.6. 移除工作表

1.7. 復制工作表

1.8. 添加數(shù)據(jù)到末行

2. 寫入和讀取Excel

2.1. 設置表名

2.2. 寫入數(shù)據(jù)

2.3. 插入空白行/列

2.4. 迭代讀取指定行、列

2.5. 遍歷所有數(shù)據(jù)行

2.6. 遍歷所有數(shù)據(jù)列

2.7. 讀取最大行號/列號

2.8. 判斷空行、列

3.?設置Excel格式

3.1. 56種顏色代碼

3.2. 設置字體屬性

3.3. 設置填充屬性

3.4. 設置對齊屬性

3.5.?設置邊框?qū)傩?/p>

3.6. 合并單元格

3.7. 設置組合樣式

4. 其他方法

4.1. csv文件導入Excel

4.2. 畫圖

① 模塊語法

② 折線圖

③ 柱狀圖


1. 創(chuàng)建和打開工作簿

1.1. 創(chuàng)建工作表

  • 創(chuàng)建一個新的工作表,并添加到工作簿中??梢酝ㄟ^index參數(shù)來指定插入工作表的位置,默認為在末尾添加。

語法

workbook.create_sheet(
    title=None    #可選參數(shù),指定工作表的名稱,默認為Sheet+數(shù)字(Sheet1)
    index=None    #可選參數(shù),指定工作表的插入位置,從0開始計數(shù)。默認將工作表添加到末尾位置。
)

示例

from openpyxl import Workbook

# 創(chuàng)建一個新的工作簿
workbook = Workbook()

# 創(chuàng)建一個 AAA 的工作簿,從第1個位置添加(索引從0開始)
wb_AAA = workbook.create_sheet('AAA', 0)

# 創(chuàng)建一個 BBB 的工作簿,默認添加到末尾
wb_BBB = workbook.create_sheet('BBB')

# 創(chuàng)建一個不指定名稱的工作簿
wb_sheet = workbook.create_sheet()

# 查看所有的工作表名稱
for i in workbook.worksheets:
    print(i.title)

# 將這些表保存到磁盤
workbook.save('tmp.xlsx')

結(jié)果

AAA
Sheet
BBB
Sheet1

Python模塊openpyxl & 操作Excel文件

?文章來源地址http://www.zghlxwxcb.cn/news/detail-495138.html

如果表名已存在,則會報錯

Python模塊openpyxl & 操作Excel文件

?

1.2. 保存Excel文件

  • 保存工作簿為一個Excel文件,需要指定文件的路徑和文件名。

語法

workbook.save('文件名')

舉例

from openpyxl import Workbook

# 創(chuàng)建一個新的工作簿
workbook = Workbook()

# 保存工作簿
workbook.save('tmp.xlsx')

會默認創(chuàng)建一個sheet頁

Python模塊openpyxl & 操作Excel文件

?

1.3. 關(guān)閉Excel工作簿

  • 在處理完工作簿之后,應該使用close()方法將其關(guān)閉。這可以確保文件在使用后得以正常關(guān)閉,避免內(nèi)存泄漏和其他問題。同時,關(guān)閉Excel文件還可以防止其他應用程序無法訪問或編輯相同的文件。

語法

workbook.close()

如果使用 with,則會自動關(guān)閉,無需手動操作

from openpyxl import Workbook

# 使用with語句打開Excel文件,并創(chuàng)建一個新的工作簿
with Workbook() as workbook:
    worksheet = workbook.active

    """操作Excel文件"""

# 自動關(guān)閉Excel文件

?

1.4. 獲取正在活動的表

  • 獲取或設置當前活動的工作表,可以通過該屬性來切換不同的工作表或獲取當前活動的工作表。

語法


# 設置一張活動的表
Workbook().active = [表名]

# 查看正在活動的表
print(Workbook().active)
#僅查看表名
print(Workbook().active.title)

舉例(如果沒有活動的表,返回None。使用Workbook就會有一張默認的sheet表活動)

>>> from openpyxl import Workbook

>>> print(Workbook().active)
<Worksheet "Sheet">

>>> print(Workbook().active.title)
Sheet

設置一張活動的表?

>>> from openpyxl import Workbook

# 創(chuàng)建一個新的工作簿
>>> workbook = Workbook()

# 設置一張表為正在活動的表
>>> wb_AAA = workbook.create_sheet('AAA')
>>> workbook.active = wb_AAA

# 查看活動的表
>>> print(workbook.active.title)
AAA

?

1.5. 獲取表名

  • 返回工作簿中所有工作表的名稱列表。
from openpyxl import load_workbook

# 打開工作簿
f = load_workbook('./tmp.xlsx')

# 查看工作簿中所有工作表名
print(f.get_sheet_names())

如果在高版本出現(xiàn)了這樣的提示

Python模塊openpyxl & 操作Excel文件

那么按照提示要求,將?get_sheet_names() 替換為?sheetnames 即可

from openpyxl import load_workbook

# 打開工作簿
f = load_workbook('./tmp.xlsx')

# 查看工作簿中所有工作表名
print(f.sheetnames)

?Python模塊openpyxl & 操作Excel文件

?

1.6. 移除工作表

  • 從工作簿中移除指定的工作表或命名范圍。

語法

workbook.remove([表名])

刪除 AAA 表

>>> from openpyxl import Workbook

# 創(chuàng)建一個新的工作簿
>>> workbook = Workbook()

# 創(chuàng)建兩個工作表
>>> AAA = workbook.create_sheet('AAA')
>>> BBB = workbook.create_sheet('BBB')

# 查看所有表名
>>> for i in workbook.worksheets:
>>>     print(i.title)
Sheet
AAA
BBB

# 刪除工作簿中的第二個工作表
>>> workbook.remove(AAA)

# 再次查看所有表名
>>> for i in workbook.worksheets:
>>>     print(i.title)
Sheet
BBB

?

1.7. 復制工作表

  • 將指定的工作表復制一份,并添加到工作簿中??梢允褂眠@個方法來快速復制工作表,并進行一些定制化操作。

直接拷貝工作表,插入的最后面。名稱為:[舊名稱] + copy

from openpyxl import load_workbook

# 打開工作簿
f = load_workbook('./tmp.xlsx')

# 選擇復制的工作表(AAA)
f_copy = f['AAA']

# 復制并插入表(新表為:[舊名]+copy)
ws = f.copy_worksheet(f_copy)

# 保存文件
f.save('./tmp.xlsx')

# 關(guān)閉文件
f.close()

Python模塊openpyxl & 操作Excel文件

?

拷貝工作表后重命名

from openpyxl import load_workbook

# 打開工作簿
f = load_workbook('./tmp.xlsx')

# 復制插入新的工作表,賦值給變量
f_copy = f.copy_worksheet(f['AAA'])

# 重命名工作表
f_copy.title = 'new_copyAAA'

# 保存文件
f.save('./tmp.xlsx')

# 關(guān)閉文件
f.close()

Python模塊openpyxl & 操作Excel文件

?

1.8. 添加數(shù)據(jù)到末行

自動追加到有數(shù)據(jù)的末行,從第1列開始追加

from openpyxl import load_workbook

# 打開工作簿
f = load_workbook('./tmp.xlsx')

# 選擇需要追加的工作表
f_sheet = f['Sheet1']

# 追加數(shù)據(jù)
data = ['A', 'B', 'C', 'D']
f_sheet.append(data)

# 保存文件
f.save('./tmp.xlsx')

Python模塊openpyxl & 操作Excel文件

?

多行數(shù)據(jù)使用循環(huán)遍歷的方式添加

from openpyxl import load_workbook

# 打開工作簿
f = load_workbook('./tmp.xlsx')

# 選擇需要追加的工作表
f_sheet = f['Sheet1']

# 準備多行數(shù)據(jù)
data_list = [
    ['A', 'B', 'C', 'D'],
    ['E', 'F', 'G', 'H'],
    [1, 2, 3, 4]
]

# 循環(huán)添加
for i in data_list:
    f_sheet.append(i)

# 保存文件
f.save('./tmp.xlsx')

?Python模塊openpyxl & 操作Excel文件

?

? ?

2. 寫入和讀取Excel

2.1. 設置表名

  • 獲取或設置工作表的名稱。

title 只能獲取已賦值的對象,查看表名?get_sheet_names?更合適

title 修改表名(將原 Sheet1 修改為 new_Sheet1)

from openpyxl import load_workbook

# 打開工作簿
f = load_workbook('./tmp.xlsx')

# 獲取工作表對象
sheet = f['Sheet1']

# 修改工作表名稱
sheet.title = 'new_Sheet1'

# 保存文件
f.save('./tmp.xlsx')

Python模塊openpyxl & 操作Excel文件

?

2.2. 寫入數(shù)據(jù)

  • 獲取或設置工作表中指定單元格的數(shù)據(jù)、樣式等信息。該方法需要指定行列索引,例如cell(row=1, column=1)表示獲取第1行第1列的單元格數(shù)據(jù)。

語法

[工作表].cell(
    row:        #必選參數(shù),指定單元格的行號
    column:     #必選參數(shù),指定單元格的列號
    value:      #可選參數(shù),單元格的值,默認值為None
    coordinate: #可選參數(shù),單元格的坐標,默認值為None。如果同時設置了row和column參數(shù),那么coordinate參數(shù)會被自動計算。
)

指定 某行、某列 寫入數(shù)據(jù)。注意:這種方式會將指定文件的原有內(nèi)容覆蓋,工作表留一個Sheet1?

import openpyxl

# 創(chuàng)建一個 工作簿
wb = openpyxl.Workbook()

# 獲取工作表對象
ws = wb.active

# 第1行、1列:插入字符串
ws.cell(1, 1, 'Hello')
# 第1行、2列:插入數(shù)字
ws.cell(1, 2, 1)
# 第1行、3列:插入數(shù)字
ws.cell(1, 3, 10)
# 第1行、4列:插入公式
ws.cell(1, 4, '=B1+C1')
# 第1行、5列:設置格式
ws.cell(row=1, column=5, value='測試')

# 保存文件
wb.save('./tmp.xlsx')

Python模塊openpyxl & 操作Excel文件

?

向已有數(shù)據(jù)的文件中,寫入指定內(nèi)容

import openpyxl

# 打開一個工作簿
wb = openpyxl.load_workbook('./tmp.xlsx')

# 指定工作表名
sheet = wb['Sheet1']

# 向文件中寫入內(nèi)容
sheet.cell(2, 1, 'abc')    #第2行、1列
sheet.cell(2, 2, '無敵')   #第2行、2列

# 保存文件
wb.save('./tmp.xlsx')

Python模塊openpyxl & 操作Excel文件

?

向某個工作簿插入多條數(shù)據(jù)

import openpyxl

# 打開一個工作簿
wb = openpyxl.load_workbook('./tmp.xlsx')

# 指定工作表名
sheet = wb['Sheet2']

# 準備每行內(nèi)容
data = [
    ['包子', '面條', '稀飯', '油條', '豆?jié){'],
    ['賣火柴', '賣火機', '賣石油', '賣火石'],
    ['西瓜', '香蕉', '蘋果', '藍莓', '石榴']
]

# 設置開始行、列
start_row = 2
start_col = 3

# 記錄初始列
init_col = start_col
for data_list in data:        #遍歷這個列表
    for value  in data_list:  #遍歷列表中的列表,這才是要插入的數(shù)據(jù)
        sheet.cell(row=start_row, column=start_col, value=value)  #指定行、列,插入數(shù)據(jù)
        start_col += 1    #每次遍歷,列數(shù)+1
    start_row += 1        #每次遍歷一個列表,行數(shù)+1
    start_col = init_col  #每次遍歷一個列表,列數(shù)回到初始值

# 保存文件
wb.save('./tmp.xlsx')

# 關(guān)閉文件
wb.close()

Python模塊openpyxl & 操作Excel文件

?

2.3. 插入空白行/列

  • 分別用于在指定的行或列插入新的空白行或空白列。

插入空白行(原本行的數(shù)據(jù)會下移n行,n取決于插入的空白行數(shù))

insert_rows(
    [行號]    #必選參數(shù),指定插入的行號
    [行數(shù)]    #可選參數(shù),指定插入n行空白,默認1
)
# 打開文件
wb = openpyxl.load_workbook('./tmp.xlsx')

# 指定工作表名
wb_sheet = wb['Sheet2']

# 第2行插入1行空白行
wb_sheet.insert_rows(2)

# 第2行插入3行空白行
wb_sheet.insert_rows(2, 3)

# 保存文件
wb.save('./tmp.xlsx')

?

?插入空白列(原本列的數(shù)據(jù)會右移n列,n取決于插入的空白列數(shù))

insert_cols(
    [列號]    #必選參數(shù),指定插入的列號
    [列數(shù)]    #可選參數(shù),指定插入n列空白,默認1
)
# 打開文件
wb = openpyxl.load_workbook('./tmp.xlsx')

# 指定工作表名
wb_sheet = wb['Sheet2']

# 第2列插入1列空白列
wb_sheet.insert_cols(2)

# 第2列插入3列空白列
wb_sheet.insert_cols(2, 3)

# 保存文件
wb.save('./tmp.xlsx')

? ??

2.4. 迭代讀取指定行、列

語法

iter_rows(
    min_row:要迭代的起始行號,默認值為1。
    max_row:要迭代的最后行號,默認值為最大行號,即ws.max_row的值。
    min_col:要迭代的起始列號,默認值為1。
    max_col:要迭代的最后列號,默認值為最大列號,即ws.max_column的值。
    values_only:默認為False,如果設置為True,則僅返回單元格的值,而不是單元格對象。
)

?表內(nèi)容如圖

Python模塊openpyxl & 操作Excel文件

?

指定開始行、結(jié)束行和開始列、結(jié)束列

import openpyxl

# 打開文件
wb = openpyxl.load_workbook('./tmp.xlsx')

# 指定工作表名
wb_sheet = wb['Sheet2']

# 指定讀取 2-3 行,返回值(而非對象)
rows = wb_sheet.iter_rows(min_row=2, max_row=3, values_only=True)

# 遍歷2-3行
for i in rows:
    print(i)

# 指定讀取 2-3 行和 3-4 列
rows = wb_sheet.iter_rows(min_row=2, max_row=3, min_col=3, max_col=4, values_only=True)

# 遍歷2-3行,3-4列
for i in rows:
    print(i)

Python模塊openpyxl & 操作Excel文件

?

2.5. 遍歷所有數(shù)據(jù)行

  • 分別返回一個生成器對象,用于遍歷工作表中所有的行。

?表內(nèi)容如圖

Python模塊openpyxl & 操作Excel文件

? ?

遍歷所有存在數(shù)據(jù)的行(從第1行開始,無論第1行是否有數(shù)據(jù))

import openpyxl

# 打開文件
wb = openpyxl.load_workbook('./tmp.xlsx')

# 指定工作表名
wb_sheet = wb['Sheet2']

# 遍歷所有有數(shù)據(jù)的行
for row in wb_sheet.rows:
    # 再遍歷這一行的所有值
    for i in row:
        # 輸出單元格名和值
        print(i.coordinate, i.value)
    # 每行做一個間隔
    print('-------------- 下一行 --------------')

輸出結(jié)果如下:

A1 None
B1 None
C1 None
D1 None
E1 None
F1 None
G1 None
-------------- 下一行 --------------
A2 None
B2 None
C2 包子
D2 面條
E2 稀飯
F2 油條
G2 豆?jié){
-------------- 下一行 --------------
A3 None
B3 None
C3 賣火柴
D3 賣火機
E3 賣石油
F3 賣火石
G3 None
-------------- 下一行 --------------
A4 None
B4 None
C4 西瓜
D4 香蕉
E4 蘋果
F4 藍莓
G4 石榴
-------------- 下一行 --------------

? ?

指定遍歷第2行?

# 打開文件
wb = openpyxl.load_workbook('./tmp.xlsx')

# 指定工作表名
wb_sheet = wb['Sheet2']

# 遍歷第2行
for i in wb_sheet[2]:
    # 輸出單元格名和值
    print(i.coordinate, i.value)

Python模塊openpyxl & 操作Excel文件

?

2.6. 遍歷所有數(shù)據(jù)列

  • 分別返回一個生成器對象,用于遍歷工作表中所有的列。

?表內(nèi)容如圖

Python模塊openpyxl & 操作Excel文件

?

遍歷所有存在數(shù)據(jù)的列(從第1列開始,無論第一列是否有數(shù)據(jù))

import openpyxl

# 打開文件
wb = openpyxl.load_workbook('./tmp.xlsx')

# 指定工作表名
wb_sheet = wb['Sheet2']

# 遍歷所有有數(shù)據(jù)的列
for col in wb_sheet.columns:
    # 再遍歷這一列的所有值
    for i in col:
        # 輸出單元格名和值
        print(i.coordinate, i.value)
    # 每列做一個間隔
    print('-------------- 下一列 --------------')

輸出結(jié)果

A1 None
A2 None
A3 None
A4 None
-------------- 下一列 --------------
B1 None
B2 None
B3 None
B4 None
-------------- 下一列 --------------
C1 None
C2 包子
C3 賣火柴
C4 西瓜
-------------- 下一列 --------------
D1 None
D2 面條
D3 賣火機
D4 香蕉
-------------- 下一列 --------------
E1 None
E2 稀飯
E3 賣石油
E4 蘋果
-------------- 下一列 --------------
F1 None
F2 油條
F3 賣火石
F4 藍莓
-------------- 下一列 --------------
G1 None
G2 豆?jié){
G3 None
G4 石榴
-------------- 下一列 --------------

?

2.7. 讀取最大行號/列號

  • 分別返回當前工作表中最大的行數(shù)和最大的列數(shù),可以用來遍歷整個工作表的數(shù)據(jù)。

語法

# 查看最后一行的行號
[工作表].max_row

# 查看最后一列的列號
[工作表].max_column

?

查看最后一行行號,輸出最后一行的值

import openpyxl
# 打開文件
wb = openpyxl.load_workbook('./tmp.xlsx')

# 指定工作表名
wb_sheet = wb['Sheet2']

# 獲取最大行
max_rows = wb_sheet.max_row
print(f'存在數(shù)據(jù)的最大行為:{max_rows}')

# 通過行號遍歷最后一行的數(shù)據(jù)
for i in wb_sheet[max_rows]:
    print(i.coordinate, i.value)

Python模塊openpyxl & 操作Excel文件

?

查看最后一列的列號

import openpyxl
# 打開文件
wb = openpyxl.load_workbook('./tmp.xlsx')

# 指定工作表名
wb_sheet = wb['Sheet2']

# 獲取最大行
max_col = wb_sheet.max_column
print(f'存在數(shù)據(jù)的最大列為:{max_col}')

Python模塊openpyxl & 操作Excel文件

?

2.8. 判斷空行、列

openpyxl 中沒有直接判斷的方法,使用循環(huán)判斷。判斷圖表如下:

Python模塊openpyxl & 操作Excel文件

?

判斷空行

# 打開文件
wb = openpyxl.load_workbook('./tmp.xlsx')

# 指定工作表名
wb_sheet = wb['Sheet2']

# 獲取最大行數(shù)、最大列數(shù)
max_row = wb_sheet.max_row
max_col = wb_sheet.max_column

# 通過行數(shù)、列數(shù)去遍歷
for row  in wb_sheet.iter_rows(max_row=max_row, max_col=max_col):
    # 判斷空行
    if all(cell.value is None for cell in row):
        print(f'第{row[0].row}行是空行')

Python模塊openpyxl & 操作Excel文件

?

判斷空列的方法與空行相似

# 打開文件
wb = openpyxl.load_workbook('./tmp.xlsx')

# 指定工作表名
wb_sheet = wb['Sheet2']

# 獲取最大行數(shù)、最大列數(shù)
max_row = wb_sheet.max_row
max_col = wb_sheet.max_column

# 通過行數(shù)、列數(shù)去遍歷
for col  in wb_sheet.iter_cols(max_row=max_row, max_col=max_col):
    # 判斷空列
    if all(cell.value is None for cell in col):
        print(f'第{col[0].column_letter}行是空列')

Python模塊openpyxl & 操作Excel文件

?

?

3.?設置Excel格式

3.1. 56種顏色代碼

索引值 顏色名稱 顏色代碼
0 黑色 000000
1 白色 FFFFFF
2 紅色 FF0000
3 深紅色 800000
4 黃色 FFFF00
5 綠色 00FF00
6 深綠色 8000
7 藍色 0000FF
8 深藍色 80
9 洋紅色 FF00FF
10 深洋紅色 800080
11 青色 00FFFF
12 深青色 8080
13 AutoCAD FF9933
14 自定義1 FF6600
15 自定義2 FFCC00
16 棕色 993300
17 橄欖綠 333300
18 深橄欖綠 333333
19 深灰色 808080
20 淺灰色 C0C0C0
21 橙色 FF9900
22 藍灰色 666699
23 白色網(wǎng)格 F2F2F2
24 淡黃色 FFFFCC
25 亮綠色 C8D531
26 光綠松石 99CCFF
27 淺天藍 99CC00
28 淡藍色 CCFFFF
29 玫瑰色 FF99CC
30 薰衣草色 CC99FF
31 棕褐色 CC9966
32 淺藍色 99CCFF
33 水綠色 00FFFF
34 石灰色 CCFF00
35 黃金色 CC9900
36 天藍色 0066CC
37 楊李色 CC99CC
38 淺橙色 FEBF00
39 鮮肉色 FFBF00
40 深棕色 663300
41 橄欖褐色 333300
42 深紅色 660000
43 暗黃色 999900
44 森林綠色 6600
45 綠松石色 3399FF
46 藍灰色 666699
47 藍綠色 6699
48 灰色40 969696
49 灰色?25 C0C0C0
50 天藍色 0066CC
51 茶色 FFC000
52 深綠色 3300
53 淺綠色 00FFFF
54 玫瑰紅 FFAFAF
55 楊李色 800080

?

3.2. 設置字體屬性

  • 例如:字體名稱、字號、顏色和是否加粗等。

語法

openpyxl.styles.Font(
    name="Calibri"    #字體名稱(Arial、Calibri、Times New Roman、Verdana、Helvetica、Tahoma)
    size=11           #字體大小
    bold=False        #是否加粗
    italic=False      #是否傾斜
    underline="none"  #下劃線類型
    color="000000"    #字體顏色,紅(FF0000)、橙(993300)、黃(FFFF00)、綠(00FF00)、青(00FFFF)、藍(0000FF)、紫(CC99FF)
    scheme="None"     #字體下劃線顏色方案
    strike=False      #刪除線。
)

設置單個單元格屬性

import openpyxl
from openpyxl.styles import Font

# 打開文件
wb = openpyxl.load_workbook('./tmp.xlsx')
# 指定工作表名
wb_sheet = wb['Sheet1']

# 指定坐標A1,設置屬性(顏色:紅色)
wb_sheet['A1'].font = Font(color='FF0000')

# 指定坐標(1行2列)和(2行2列)為藍色
wb_sheet.cell(row=1, column=2).font = Font(color='0000FF')
wb_sheet.cell(row=2, column=2).font = Font(color='0000FF')

# 保存文件
wb.save('./tmp.xlsx')

Python模塊openpyxl & 操作Excel文件

?

設置某個工作表所有存在數(shù)據(jù)的單元格屬性

# 打開文件
wb = openpyxl.load_workbook('./tmp.xlsx')

# 指定工作表名
wb_sheet = wb['Sheet2']

# 將工作表所有存在數(shù)據(jù)的單元格設置屬性(獲取最大行數(shù)、最大列數(shù))
max_row = wb_sheet.max_row
max_col = wb_sheet.max_column

# 通過行數(shù)、列數(shù)去遍歷
for row  in wb_sheet.iter_rows(max_row=max_row, max_col=max_col):
    # 遍歷單個單元格
    for cell in row:
        # 設置屬性(字體大?。?8,字體加粗,字體刪除線)
        cell.font = openpyxl.styles.Font(size=18, bold=True,strike=True)

#保存文件
wb.save('./tmp.xlsx')

Python模塊openpyxl & 操作Excel文件

?

指定表格設置屬性

import openpyxl
# 打開文件
wb = openpyxl.load_workbook('./tmp.xlsx')

# 指定工作表名
wb_sheet = wb['Sheet2']

# 指定開始行、結(jié)束行;開始列,結(jié)束列設置屬性
start_row,end_row = 1,3    #1-3行
start_col,end_col = 2,4    #2-4列

# 通過行數(shù)、列數(shù)去遍歷
for row  in wb_sheet.iter_rows(min_row=start_row, max_row=end_row, min_col=start_col, max_col=end_col):
    # 遍歷單個單元格
    for cell in row:
        # 設置屬性(字體顏色:紅色)
        cell.font = openpyxl.styles.Font(color='FF0000')

#保存文件
wb.save('./tmp.xlsx')

Python模塊openpyxl & 操作Excel文件

? ?

3.3. 設置填充屬性

  • 例如:填充類型、填充顏色、前景色、背景色等。

語法

openpyxl.styles.PatternFill(
    fill_type    #填充類型
    fg_color     #前景顏色
    bg_color     #背景顏色
    start_color  #開始顏色
    end_color    #結(jié)束顏色,僅在 fill_type 為 “gradient” 時有效
    pattern_type #填充的圖案類型,只有在 fill_type 為 “solid” 或 “l(fā)ight* / dark*” 等條紋填充時有效
)

填充類型包含:
    none        #不填充
    solid       #實心填充
    mediumGray, darkGray, lightGray, black: 灰階填充
    darkHorizontal, darkVertical, darkDown, darkUp, darkGrid, darkTrellis,lightHorizontal, lightVertical, lightDown, lightUp, lightGrid, lightTrellis: 線條或塊條紋填充
    gray0625    #62.5% 灰階填充
    gradient    #漸變填充
    path        #自定義填充

填充的圖案類型包括:
    none        #無圖案
    solid       #單色圖案
    gray0625    #62.5% 灰階圖案
    mediumGray, darkGray, lightGray, black: 灰階圖案
    darkHorizontal, darkVertical, darkDown, darkUp, darkGrid, darkTrellis, lightHorizontal, lightVertical, lightDown, lightUp, lightGrid, lightTrellis: 線條或塊條紋圖案

示例(設置背景色為綠色)

from openpyxl import load_workbook
from openpyxl.styles import PatternFill

wb = load_workbook('./tmp.xlsx')
wb_sheet = wb['Sheet1']

# 設置A1填充類型為實心填充,背景顏色為綠色
wb_sheet['A1'].fill = PatternFill(fill_type='solid', start_color='00FF00')
# 設置A2填充類型為條紋填充,背景顏色為紅色,條紋顏色為黃色
wb_sheet['A2'].fill = PatternFill(fill_type='lightVertical', start_color='FF0000', end_color='FFFF00')

wb.save('./tmp.xlsx')

Python模塊openpyxl & 操作Excel文件

?

3.4. 設置對齊屬性

  • 例如:水平對齊方式、垂直對齊方式、自動換行等。

語法

openpyxl.styles.Alignment(
    horizontal    #水平對齊方式, 默認general(一般對齊)
    vertical      #垂直對齊方式
    wrap_text     #是否自動換行(True 或 False)
    shrink_to_fit #是否縮小字體以適應單元格大小(True 或 False)
    indent        #縮進級別(0-255)
    reading_order #讀取順序(1: 從左到右; 2: 從右到左)
)

水平對齊選項:
    general           #默認值,一般對齊
    left              #左對齊
    center            #居中對齊
    right             #右對齊
    fill              #填充對齊
    justify           #兩端對齊
    centerContinuous  #連續(xù)居中對齊(僅限于分布居中)
    distributed       #分布對齊

垂直對齊選項:
    top          #上對齊
    center       #居中對齊
    bottom       #下對齊
    justify      #兩端對齊
    distributed  #分布對齊

示例(設置單個單元格對齊方式)

from openpyxl import load_workbook
from openpyxl.styles import Alignment

wb = load_workbook('./tmp.xlsx')
wb_sheet = wb['Sheet1']

# 居中對齊
wb_sheet['A1'].alignment = Alignment(horizontal='center', vertical='center')

# 左對齊,自動換行,縮小字體以適應單元格大小
wb_sheet['A2'].alignment = Alignment(horizontal='left', vertical='top', wrap_text=True, shrink_to_fit=True)

# 分布對齊
wb_sheet['A3'].alignment = Alignment(horizontal='distributed', vertical='center')

wb.save('./tmp.xlsx')

Python模塊openpyxl & 操作Excel文件

? ?

示例(設置多個單元格對齊)

from openpyxl import load_workbook
from openpyxl.styles import Alignment

wb = load_workbook('./tmp.xlsx')
wb_sheet = wb['Sheet1']

# 設置單元格的對齊方式為居中
alignment = Alignment(horizontal='center', vertical='center')

# 設置開始行號和結(jié)束行號、開始列號和結(jié)束列號
start_rows,end_rows = 2,5
start_col, end_col = 2,5

# 采用遍歷的方式分別對各個單元格設置對齊方式
for row in wb_sheet.iter_rows(min_row=start_rows, max_row=end_rows, min_col=start_col, max_col=end_col):
    for cell in row:
        # 為每個單元格設置對齊方式
        cell.alignment = alignment

wb.save('./tmp.xlsx')

Python模塊openpyxl & 操作Excel文件

?

3.5.?設置邊框?qū)傩?/h3>
  • 例如:邊框樣式、邊框顏色、邊框位置等。

語法

openpyxl.styles.Border(
    left        #左邊框樣式(參考下方選項)
    right       #右邊框樣式(參考下方選項)
    top         #上邊框樣式(參考下方選項)
    bottom      #下邊框樣式(參考下方選項)
    diagonal    #對角線樣式(參考下方選項)
    diagonal_direction  #對角線方向(up: 對角線從下到上; down: 對角線從上到下)
    diagonal_color      #對角線顏色,同顏色規(guī)范
)

邊框樣式選項:
    none              #沒有邊框
    thin              #細邊框
    medium            #中等邊框
    dashed            #虛線邊框
    dotted            #點線邊框
    thick             #粗邊框
    double            #雙邊框
    hair              #細邊框,類似于毛發(fā)
    mediumDashDot     #中等虛線邊框
    dashDot           #虛線點線邊框
    mediumDashDotDot  #中等點線點線邊框
    dashDotDot        #虛線點線點線邊框
    mediumDashed      #中等虛線邊框

舉例(設置單個單元格邊框)

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

wb = load_workbook('./tmp.xlsx')
wb_sheet = wb['Sheet1']

# 為 A1 單元格添加雙線邊框,顏色為紅色
border = Border(
                left=Side(style='double',   color='FF0000'),
                right=Side(style='double',  color='FF0000'),
                top=Side(style='double',    color='FF0000'),
                bottom=Side(style='double', color='FF0000')
)
wb_sheet['A1'].border = border

# 為 A2 單元格添加細虛線邊框,顏色為藍色
thin_border = Border(
                    left=Side(style='thin',   color='0000FF'),
                    right=Side(style='thin',  color='0000FF'),
                    top=Side(style='thin',    color='0000FF'),
                    bottom=Side(style='thin', color='0000FF')
)
wb_sheet['A2'].border = thin_border

wb.save('./tmp.xlsx')

Python模塊openpyxl & 操作Excel文件

?

舉例(設置多個單元格邊框),使用遍歷逐個設置邊框

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

wb = load_workbook('./tmp.xlsx')
wb_sheet = wb['Sheet1']

# 準備一個虛線邊框模板,顏色為紅色
thin_border = Border(
                left=Side(style='thin',   color='FF0000'),
                right=Side(style='thin',  color='FF0000'),
                top=Side(style='thin',    color='FF0000'),
                bottom=Side(style='thin', color='FF0000')
)

# 設置開始行號和結(jié)束行號、開始列號和結(jié)束列號
start_rows,end_rows = 2,5
start_col, end_col = 2,5

# 采用遍歷的方式分別對各個單元格設置邊框
for row in wb_sheet.iter_rows(min_row=start_rows, max_row=end_rows, min_col=start_col, max_col=end_col):
    for cell in row:
        # 為每個單元格設置邊框
        cell.border = thin_border

wb.save('./tmp.xlsx')

Python模塊openpyxl & 操作Excel文件

?

3.6. 合并單元格

  • 分別用于合并指定區(qū)域中的單元格和取消已經(jīng)合并的單元格區(qū)域。

合并單元格語法

worksheet.merge_cells(
    range_string=None    #指定要合并的單元格范圍。例如:A1:A2
    start_row=None       #是合并范圍的左上角單元格的行號。
    start_column=None    #是合并范圍的左上角單元格的列號。
    end_row=None         #是合并范圍的右下角單元格的行號。
    end_column=None      #是合并范圍的右下角單元格的列號。
)
  • 當指定range_string參數(shù)時,將自動計算另外4個參數(shù)。
  • 如果同時指定了5個參數(shù)參數(shù),則以range_string參數(shù)為準。

取消合并單元格語法

worksheet.unmerge_cells(
    range_string=None    #指定要取消的合并單元格的范圍。
    start_row=None       #是要取消的合并單元格的左上角單元格的行號。
    start_column=None    #是要取消的合并單元格的左上角單元格的列號。
    end_row=None         #是要取消的合并單元格的右下角單元格的行號。
    end_column=None      #是要取消的合并單元格的右下角單元格的列號。
)
  • 用法與合并單元格一致,不做舉例說明

?

同一行合并(A1:B1,如果2個單元格都有數(shù)據(jù),那么只保留A1;B1:A1 這種語法是錯誤的,合并行或列,必須從走往右、從上往下選擇)

# 打開文件
wb = openpyxl.load_workbook('./tmp.xlsx')

# 指定工作表名
wb_sheet = wb['Sheet1']

# 指定A1和B1合并
wb_sheet.merge_cells('A1:B1')

# 保存文件
wb.save('./tmp.xlsx')

Python模塊openpyxl & 操作Excel文件

斜對行合并

# 打開文件
wb = openpyxl.load_workbook('./tmp.xlsx')

# 指定工作表名
wb_sheet = wb['Sheet1']

# 指定A1和B2合并(自動計算4個單元格)
wb_sheet.merge_cells('A1:B2')

# 保存文件
wb.save('./tmp.xlsx')

Python模塊openpyxl & 操作Excel文件

?指定開始行、列和結(jié)束行列(自定義方法適用于遍歷)

# 打開文件
wb = openpyxl.load_workbook('./tmp.xlsx')

# 指定工作表名
wb_sheet = wb['Sheet1']

# 指定開始行號、結(jié)束行號;開始列號、結(jié)束列號
wb_sheet.merge_cells(start_row=2, end_row=5, start_column=3, end_column=7)

# 保存文件
wb.save('./tmp.xlsx')

Python模塊openpyxl & 操作Excel文件

?

3.7. 設置組合樣式

from openpyxl import load_workbook
from openpyxl.styles import Alignment,NamedStyle,Font,Border,Side,PatternFill

# 打開工作簿和對應的工作表
wb = load_workbook('./tmp.xlsx')
wb_sheet = wb['Sheet1']

# 定義一個名為 my_style 的樣式對象
my_style = NamedStyle(name="my_style")
# 設置字體屬性
my_style.font = Font(size=14, bold=True)
# 設置填充屬性
my_style.fill = PatternFill(start_color='FFC7CE', end_color='FFC7CE', fill_type='solid')
# 設置邊框?qū)傩?my_style.border = Border(left=Side(style='thin', color='000000'),
                          right=Side(style='thin', color='000000'),
                          top=Side(style='thin', color='000000'),
                          bottom=Side(style='thin', color='000000'))
my_style.alignment = Alignment(horizontal='center', vertical='center')

# 設置開始行號和結(jié)束行號、開始列號和結(jié)束列號
start_rows,end_rows = 1,3
start_col, end_col  = 1,5

# 采用遍歷的方式分別對各個單元格設置對齊方式
for row in wb_sheet.iter_rows(min_row=start_rows, max_row=end_rows, min_col=start_col, max_col=end_col):
    for cell in row:
        # 為每個單元格設置自定義的屬性
        cell.style = my_style

# 保存文件
wb.save('./tmp.xlsx')
# 關(guān)閉文件
wb.close()

Python模塊openpyxl & 操作Excel文件

?

?

4. 其他方法

4.1. csv文件導入Excel

通過?pandas.read_csv 讀取csv文件內(nèi)容,語法如下

pandas.read_csv(
    filepath_or_buffer #必選參數(shù),指定文件
    sep                #可選參數(shù),指定分隔符(默認逗號)
    delimiter          #可選參數(shù),指定分隔符,與sep一樣,可用任何長度的字符串作為分隔符。
    skipinitialspace   #可選參數(shù),忽略分隔符后的空白,默認為False。
    header             #可選參數(shù),指定第n行作為每列的列名(例如指定第2行,那么不會輸出第1行)
    names              #可選參數(shù),指定列名(例如:names=['AA','BB','CC','DD'],使用列表給每列取列名)
    usecols            #可選參數(shù),通過索引指定列數(shù)( [0,1,2] 和 [0,2,1] 讀取的結(jié)果一致,不會更改數(shù)據(jù)的順序)
    nrows              #指定讀取的行數(shù)(nrows=1 讀取第2行)
    skiprows           #可選參數(shù),指定跳過某行(skiprows=[0,2] 跳過1和3行)
    skipfooter         #可選參數(shù),指定跳過尾部行數(shù)(skipfooter=2 跳過最后2行)
    encoding           #指定編碼格式,默認為None,使用系統(tǒng)默認編碼。
)

通過?to_excel 保存到Excel文件,語法如下

to_excel(
    excel_writer    #指定工作簿名
    sheet_name      #指定工作表名
    startrow        #寫入數(shù)據(jù)的起始行
    startcol        #寫入數(shù)據(jù)的起始列。
    float_format    #精度設置。
    columns         #要寫入的列,默認為None,表示寫入所有列。
    header          #是否寫入列名,默認為True。
    index           #是否寫入索引,默認為True。
    index_label     #索引列的列名。
    merge_cells     #合并單元格。
    encoding        #指定編碼格式,默認為None,使用系統(tǒng)默認編碼。
)

讀取csv文件內(nèi)容保存到Excel文件(如果存在該文件自動覆蓋;如果不存在該文件自動創(chuàng)建)

import pandas

# 讀取csv文件,指定分隔符
f = pandas.read_csv('./csv.txt', sep=',')

# 將csv文件內(nèi)容覆蓋到Excel,執(zhí)行工作表名為AAA(默認為Sheet1)
f.to_excel('tmp.xlsx', index=False, sheet_name='AAA')

?

讀取csv文件內(nèi)容,保存到Excel指定一個新的Sheet

import pandas

# 讀取csv文件
f = pandas.read_csv('./csv.txt', sep=',')

# 指定追加模式
with pandas.ExcelWriter('tmp.xlsx', mode='a') as w:
    # 將追加一個工作表BBB到Excel文件,如果BBB存在則報錯
    f.to_excel(w, sheet_name='BBB', index=False)

?

讀取csv文件內(nèi)容,指定寫入開始行(列)到Excel文件

import pandas

# 讀取csv文件
f = pandas.read_csv('./csv.txt', sep=',')

# 指定追加模式
with pandas.ExcelWriter('tmp.xlsx', mode='a') as w:
    # 指定工作表名(ccc),從第11行、4列開始寫入數(shù)據(jù)
    f.to_excel(w, sheet_name='CCC', index=False, startrow=10, startcol=3)

?

4.2. 畫圖

① 模塊語法

matplotlib.pyplot 內(nèi)置的方法

matplotlib.pyplot.[方法]

方法如下( plt 為 matplotlib.pyplot 的簡稱):
    plt.title()    #設置圖表標題;
    plt.xlabel()   #設置x軸標簽;
    plt.ylabel()   #設置y軸標簽;
    plt.grid()     #添加網(wǎng)格線到圖表中;
    plt.legend()   #在圖表中添加圖例;
    plt.savefig()  #將圖表保存到指定的文件中。
    plt.xticks()   #設置x軸刻度標簽;
    plt.yticks()   #設置y軸刻度標簽;

    plt.plot()     #繪制折線圖、散點圖、條形圖等;
    plt.boxplot()  #繪制箱體圖;
    plt.bar()      #繪制垂直方向的條形圖;
    plt.hist()     #繪制直方圖;
    plt.pie()      #繪制餅圖;
    plt.imshow()   #繪制圖像;
    plt.contour()  #繪制等高線圖;
    plt.scatter()  #繪制散點圖;
    plt.stem()     #繪制干狀圖(即將每個點的值以線的形式展示);
    plt.step()     #繪制階梯圖;
    plt.polar()    #繪制極坐標圖;
    plt.subplots() #創(chuàng)建Figure對象和多個子圖;


    plt.semilogx() #以10為底的對數(shù)刻度繪制x軸;
    plt.semilogy() #以10為底的對數(shù)刻度繪制y軸;
    plt.loglog()   #以10為底的對數(shù)刻度繪制x、y軸;
    plt.fill()     #填充兩條曲線之間的區(qū)域;
    plt.text()     #在圖表中添加文本注釋;

折線圖語法(matplotlib.pyplot.plot)

matplotlib.pyplot.plot(
    x          #橫坐標數(shù)組或一個可迭代對象;
    y          #縱坐標數(shù)組或一個可迭代對象;
    c          #散點圖中點的顏色;
    label      #該圖例標簽的字符串;
    linestyle  #折線的樣式;
    linewidth  #折線或線框的線寬;
    marker     #散點圖的標記樣式;
    markersize #標記大小;
    alpha      #透明度;
    edgecolors #散點或折線周圍的顏色;
    color      #折線或線框的顏色;
    markeredgecolor    #標記邊界的顏色;
    markeredgewidth    #標記邊界的線寬;
    markerfacecolor    #標記內(nèi)部的顏色;
    linestyle          #折線或線框的樣式;
    dash_capstyle      #折線中間斷點的樣式;
    dash_joinstyle     #折線中間斷點的連接樣式;
    solid_capstyle     #線框起點或終點的樣式;
    solid_joinstyle    #線框起點或終點在交叉區(qū)域的樣式;
    zorder             #控制圖層順序,越大的值表示越靠近上層;
    drawstyle          #折線的繪制方式,可以是"steps-pre"、“steps-mid"或"steps-post”;
    dashes             #自定義折線的樣式,例如[10, 5, 20, 5]表示線段長10,空隙長5,線段長20,空隙長5;
    antialiased        #抗鋸齒效果,默認為True;
    fillstyle          #散點的填充樣式,可以是"full"、“l(fā)eft”、“right"或"bottom”;
    solid_joinstyle    #線框起點或終點在交叉區(qū)域的樣式;
    visible            #對象是否可見;
    clip_on            #是否將對象剪裁為軸范圍內(nèi);
    clip_path          #剪裁路徑;
    markerfacecoloralt #用于面向未填充的標記的交替面顏色。
)

柱狀圖語法(matplotlib.pyplot.bar)

matplotlib.pyplot.bar(
    x          #柱狀圖中每個柱的橫坐標;
    height     #每個柱的高度;
    width      #每個柱的寬度,為浮點數(shù)或數(shù)組;
    align      #柱的對齊方式,可以是’center’、‘edge’、‘none’,分別表示居中對齊、邊緣對齊和不對齊;
    bottom     #每個柱底部的高度;
    log        #是否使用對數(shù)坐標軸;
    color      #柱狀的顏色,可以是單個顏色字符串,也可以是RGB或RGBA序列、灰度值或html字符串;
    edgecolor  #每個柱的邊框顏色;
    linewidth  #每個邊框的線寬;
    hatch      #每個柱填充的圖案樣式(紋理);
    capsize    #誤差線末端箭頭的長度;
    error_kw   #誤差線相關(guān)參數(shù):
    elinewidth #誤差線線寬;
    capsize    #誤差線末端箭頭的長度;
    capthick   #誤差線末端箭頭的厚度;
    ecolor     #誤差線顏色。
    align      #對齊方式,可以是“edge”,“center”。
    label      #柱狀圖的標簽;
    alpha      #透明度;
    visible    #是否可見;
    zorder     #控制圖層順序,越大的值表示越靠近上層;
    tick_label #柱狀圖的刻度標簽;
    xerr       #繪制誤差線;
    yerr       #繪制誤差線。
)

顏色寫法

red:紅色
g:綠色
b:藍色
c:青色
m:品紅
y:黃色
k:黑色
w:白色。

?

② 折線圖

Excel數(shù)據(jù)如下:

Python模塊openpyxl & 操作Excel文件

??

讀取3列數(shù)據(jù),繪制折線圖

import pandas
import matplotlib.pyplot as plt

# 防止亂碼
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']

# 讀取Excel文件內(nèi)容,如果讀取csv文件,則使用pandas.read_csv
df = pandas.read_excel('./tmp.xlsx', sheet_name='AAA')

# 提取橫坐標的數(shù)據(jù)(常見的:日期,時長)
x = df['data'].to_numpy()
# 通過列名(c1/c2/c3)提取畫圖的數(shù)據(jù)
y1 = df['c1'].to_numpy()
y2 = df['c2'].to_numpy()
y3 = df['c3'].to_numpy()

# 繪制折線圖
plt.plot(x, y1, label='c1')  # 指定縱坐標y1,并自定義圖例標題為c1
plt.plot(x, y2, label='c2')  # 指定縱坐標y2,并自定義圖例標題為c2
plt.plot(x, y3, label='c3')  # 指定縱坐標y3,并自定義圖例標題為c3
plt.legend()                 # 顯示圖例標題
plt.xlabel('橫坐標名稱')
plt.ylabel('縱坐標名稱')
plt.title('折線圖標題')
plt.savefig('./aa.jpg')      # 保存圖片
plt.show()  #查看圖片

Python模塊openpyxl & 操作Excel文件

??

如果列名沒有在第一行,那么在讀取的時候直接跳過n行

# 讀取Excel文件內(nèi)容,header跳過前10行
df = pandas.read_excel('./tmp.xlsx', sheet_name='AAA', header=10)

??

增加屬性(標記點、網(wǎng)格、跳過n行)

import pandas
import matplotlib.pyplot as plt

# 防止亂碼
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']

# 讀取Excel文件內(nèi)容,如果讀取csv文件,則使用pandas.read_csv
df = pandas.read_excel('./tmp.xlsx', sheet_name='AAA', header=40)

# 提取橫坐標的數(shù)據(jù)(常見的:日期,時長)
x = df['data'].to_numpy()
# 通過列名(c1/c2/c3)提取畫圖的數(shù)據(jù)
y1 = df['c1'].to_numpy()
y2 = df['c2'].to_numpy()
y3 = df['c3'].to_numpy()

# 定義圖表大小(長15,高8)
plt.figure(figsize=(15,8))
# 繪制折線圖。label自定義圖例名稱,marker自定義標記樣式,markersize指定標記大小
plt.plot(x, y1, label='c1', marker='o', markersize=3)
plt.plot(x, y2, label='c2', marker='o', markersize=3)
plt.plot(x, y3, label='c3', marker='o', markersize=3)
plt.legend()    #顯示圖例標題
plt.grid()      #顯示網(wǎng)格線
plt.xlabel('橫坐標名稱')
plt.ylabel('縱坐標名稱')
plt.title('折線圖標題')
plt.savefig('./aa.jpg')    # 保存圖片
plt.show()  #查看圖片

Python模塊openpyxl & 操作Excel文件

??

③ 柱狀圖

多條柱狀圖重疊

import pandas
import matplotlib.pyplot as plt

# 防止亂碼
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']

# 讀取Excel文件內(nèi)容
df = pandas.read_excel('./tmp.xlsx', sheet_name='AAA', header=40)

# 提取橫坐標的數(shù)據(jù)(常見的:日期,時長)
x = df['data'].to_numpy()
# 通過列名(c1/c2/c3)提取畫圖的數(shù)據(jù)
y1 = df['c1'].to_numpy()
y2 = df['c2'].to_numpy()
y3 = df['c3'].to_numpy()

# 定義圖表大小(長15,高8)
plt.figure(figsize=(15,8))
# 繪制折線圖(label為自定義圖例名稱;width為柱狀寬0-1;alpha為透明度0-1;edgecolor為邊框顏色)
plt.bar(x, y1, label='c1', width=0.5, alpha=0.5, edgecolor='black')
plt.bar(x, y2, label='c2', width=0.5, alpha=0.5, edgecolor='black')
plt.bar(x, y3, label='c3', width=0.5, alpha=0.5, edgecolor='black')
plt.legend()                 # 顯示圖例標題
plt.xlabel('橫坐標名稱')
plt.ylabel('縱坐標名稱')
plt.title('折線圖標題')
# plt.savefig('./aa.jpg')    # 保存圖片
plt.show()  #查看圖片

Python模塊openpyxl & 操作Excel文件

??

多條圖形重疊顏色難以區(qū)分,讓x軸+n(右移動n)

import pandas
import matplotlib.pyplot as plt

# 防止亂碼
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']

# 讀取Excel文件內(nèi)容
df = pandas.read_excel('./tmp.xlsx', sheet_name='AAA', header=40)

# 提取橫坐標的數(shù)據(jù)(常見的:日期,時長)
x = df['data'].to_numpy()
# 通過列名(c1/c2/c3)提取畫圖的數(shù)據(jù)
y1 = df['c1'].to_numpy()
y2 = df['c2'].to_numpy()
y3 = df['c3'].to_numpy()

# 定義圖表大小(長15,高8)
plt.figure(figsize=(15,8))
# 繪制折線圖(label為自定義圖例名稱;width為柱狀寬0-1;alpha為透明度0-1;edgecolor為邊框顏色;color為柱狀顏色)
plt.bar(x, y1, label='c1', width=0.2, alpha=0.5, edgecolor='black',color='g')
plt.bar(x+0.2, y2, label='c2', width=0.2, alpha=0.5, edgecolor='black',color='c')
plt.bar(x+0.4, y3, label='c3', width=0.2, alpha=0.5, edgecolor='black',color='m')
plt.legend()                 # 顯示圖例標題
plt.xlabel('橫坐標名稱')
plt.ylabel('縱坐標名稱')
plt.title('折線圖標題')
plt.savefig('./aa.jpg')    # 保存圖片
plt.show()  #查看圖片

Python模塊openpyxl & 操作Excel文件

?

?

到了這里,關(guān)于Python模塊openpyxl & 操作Excel文件的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關(guān)文章

  • 利用Python中的openpyxl/Pandas庫操作excel

    本文主要講述 openpyxl庫對excel文件的讀取寫入操作以及Pandas庫對excel文件的寫入操作。 一、openpyxl介紹安裝 1.安裝openpyxl 2.Excel中的三大對象 二、openpyxl對Excel的操作 ?使用openpyxl讀取excel 使用openpyxl寫入excel ? ? ? ??三、使用pandas寫入excel python中與excel操作相關(guān)的模塊: xlrd庫

    2024年02月08日
    瀏覽(30)
  • Python使用openpyxl讀寫excel文件

    Python使用openpyxl讀寫excel文件

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

    2024年02月09日
    瀏覽(25)
  • Python用openpyxl操作Excel:讀寫、遍歷、單元格讀寫

    openpyxl支持讀寫Excel,自帶整合Pandas和NumPy功能。 worksheet cell

    2024年02月16日
    瀏覽(31)
  • Python openpyxl模塊操作手冊(簡單易懂)

    Python openpyxl模塊操作手冊(簡單易懂)

    創(chuàng)建文件 Workbook() —創(chuàng)建 excel 文件 使用 openpyxl 創(chuàng)建文件。只需導入Workbook類 Workbook.create_sheet() —創(chuàng)建 excel 工作簿 Workbook.create_sheet() 可以創(chuàng)建自定義名稱的工作簿。括號里的參數(shù)是工作簿名稱,還有一個參數(shù)是工作簿的位置,也可以不寫 from openpyxl import Workbook wb = Workbook()

    2024年01月20日
    瀏覽(30)
  • Python Excel操作新玩法:從零到高手掌握openpyxl

    openpyxl是Python中一個強大的第三方庫,用于操作Excel文件,它可以讀取、寫入和修改Excel文件,并且支持Excel文件中的樣式、圖表等元素。openpyxl使得在Python中處理Excel文件變得非常簡單和高效。本文將從入門到精通地介紹openpyxl的使用方法,帶你掌握在Python中處理Excel文件的技巧

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

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

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

    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ù) 有如下一個文件 data.xlsx 實現(xiàn)代碼 輸出讀取的json數(shù)據(jù) 讀寫示例

    2024年02月15日
    瀏覽(33)
  • 辦公自動化 - openpyxl操作Excel(一)基本操作

    辦公自動化 - openpyxl操作Excel(一)基本操作

    官網(wǎng):openpyxl - A Python library to read/write Excel 2010 xlsx/xlsm files — openpyxl 3.0.9 documentation openpyxl是一個用于讀寫Excel 2010 xlsx/xlsm/xltx/xltm文件的Python庫。 某些概念之間的層級關(guān)系和操作類似于 字典 。 如: workbook = {“sheetname”: {“cell”: cell}}, worksheet = {“cell”: cell} 是 sheet 工作表

    2024年02月04日
    瀏覽(26)
  • Python3.11教程3:模塊和包(pip/conda)、文件系統(tǒng)(os/ shutil/json/pickle/openpyxl/xlrd)

    本文相關(guān)鏈接: Python官網(wǎng)、Python 3.11.5 中文文檔、慕課:Python語言程序設計、Real Python :Write More Pythonic Code Miniconda、Anaconda、conda文檔 Python 標準庫官方文檔、 《os — 多種操作系統(tǒng)接口》、《os.path — 常用路徑操作》、《shutil — 高階文件操作》 Pandas文檔《Input/output》、 op

    2024年02月09日
    瀏覽(48)
  • Python-使用openpyxl讀取excel內(nèi)容

    Python-使用openpyxl讀取excel內(nèi)容

    將下面的excel中的寄存器表單讀入并構(gòu)建一個字典 wb.sheetnames 會返回一個列表,列表中是每個工作表的名稱,數(shù)據(jù)類型為str。執(zhí)行上述代碼后ws就是獲取的工作表。 使用sheet.cell會返回cell對象,再使用cell.value才能返回單元格的值,執(zhí)行上述代碼的結(jié)果如下: 按行讀取可以用

    2024年03月12日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領取紅包

二維碼2

領紅包