色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

Python自動(dòng)化辦公Excel模塊openpyxl原理及用法解析

瀏覽:2日期:2022-07-06 13:57:11

openpyxl 介紹

openpyxl 是一個(gè)直接可用于讀寫 xlsx 、xlsm、xltx、xltm 文件的 Python 內(nèi)置庫(kù),借助它可以利用 Python 語法對(duì)本地 xlsx 文件進(jìn)行自動(dòng)化批量操作

先說一下安裝部分,如果小伙伴們用 Anaconda 作為 Python 環(huán)境的話,openpyxl 無需安裝可直接使用;需要安裝的話方法也非常簡(jiǎn)單 pip 工具一行命令即可

pip install openpyxl

xlsx 文件屬性

在對(duì) Excel 表格處理之前,需要了解一下 xlsx 文件的幾個(gè)名詞解釋及構(gòu)造

1,Workbook 指的是神什么?

Workbook 名叫工作薄,可以代指一個(gè) xlsx 文件;

2, sheet、cell、row 、col 分別指的是什么?

關(guān)于問題2 ,可參考下圖(見注釋)

Python自動(dòng)化辦公Excel模塊openpyxl原理及用法解析

openpyxl 基本命令操作

1, 創(chuàng)建 一個(gè)空的 workbook

from openpypl import Wrokbookfrom openpyxl.utils import get_column_letter

wb = Workbook()ws1 = wb.active

一個(gè) Workbook 默認(rèn)至少含有一個(gè) worksheet ,通過命令 Workbook.active 來獲取當(dāng)前第一個(gè) sheet(也就是第一個(gè) sheet);

2,創(chuàng)建新的 worksheet

ws1 = wb.create_sheet('Mysheet') # insert at the end (default)

ws2 = wb.create_sheet('Mysheet', 0) # insert at first position# orws3 = wb.create_sheet('Mysheet', -1) # insert at the penultimate position

可通過 create_sheet() 命令創(chuàng)建新的 worksheet , create_sheet 默認(rèn)有兩個(gè)參數(shù) name、index;

name,定義 sheet 的名字; index,來設(shè)置插入 sheet 的位置,默認(rèn)為 None 即新創(chuàng)建的 sheet 插入到最后面;0 代表插入第一個(gè) sheet 的位置;

3,更改 sheet 的名字

一行代碼即可

ws.title = ’New Title’

4,更改 sheet 上 tab 背景顏色

ws.sheet_properties.tabColor = '1072BA'

通過修改 Wroksheet.sheet_properties.tabColor 參數(shù)即可,需要注意的是這里只接收 RRGGBB 顏色代碼;

關(guān)于不清楚 sheet tab 背景顏色不清楚是什么的小伙伴,可參考下圖;

Python自動(dòng)化辦公Excel模塊openpyxl原理及用法解析

5, 返回 Workbook 中所有 sheet 的名字

通過 Workbook.sheetname 命令即可查看

>>> print(wb.sheetnames)[’Sheet2’, ’New Title’, ’Sheet1’]

# 或者用迭代方法

>>> for sheet in wb:... print(sheet.title)

6,將現(xiàn)有的 worksheets 復(fù)制新創(chuàng)建的 workbook 中

可通過 Workbook.copy_worksheet()函數(shù)方法

# 將 source 中的worksheet復(fù)制到 target 中去

source = wb.activetarget = wb.copy_worksheet(source)

需要注意的是,當(dāng) workbook 為只讀或 只寫模式時(shí)不可復(fù)制;另外只有 cells(值,樣式,超鏈接、注釋) 和 特定的 worksheet 屬性(維度、格式、屬性)可以復(fù)制,其他的一些 workbook / worksheet 屬性不可復(fù)制( Images Charts 等)

7,獲取某個(gè) cell 的數(shù)據(jù)

成功創(chuàng)建完 Workbook、Worksheet 之后,接下來就可以修改 cell(單元格中的內(nèi)容,Cells 可以通過 worksheet 中特有關(guān)鍵詞來獲取

>>> c = ws[’A4’] # 獲取第4行列名為A 單元格中的值通過賦值命令對(duì)其修改

ws[’A4’] = 4

openpyxl 中有一個(gè)函數(shù) Worksheet.cell() 可修改單元格中的數(shù)據(jù),可定位到具體行、具體列進(jìn)行更改,

d = ws.cell(row = 4,columns = 2,value = 10)

row 表示指定行 columns 表示指定列 value 表示該單元格中需替代的數(shù)據(jù)值;當(dāng)此參數(shù)不設(shè)置時(shí)表示只對(duì)該 cell 創(chuàng)建內(nèi)存空間,不賦值

例如

>>> for x in range(1,101):... for y in range(1,101):... ws.cell(row=x, column=y)

8,獲取多個(gè)單元格

8.1 , openpyxl 也可以進(jìn)行切片操作,來獲取多個(gè)單元格

>>> cell_range = ws[’A1’:’C2’]

8.2, worksheet 中多行多列數(shù)據(jù)獲取方式相似

>>> colC = ws[’C’]>>> col_range = ws[’C:D’]>>> row10 = ws[10]>>> row_range = ws[5:10]

8.3,Worksheet.iter_row() 來獲取 sheet 中行列范圍,再利用循環(huán)迭代獲取每一個(gè)單元格數(shù)據(jù)

>>> for row in ws.iter_rows(min_row=1, max_col=3, max_row=2):... for cell in row:... print(cell)<Cell Sheet1.A1><Cell Sheet1.B1><Cell Sheet1.C1><Cell Sheet1.A2><Cell Sheet1.B2><Cell Sheet1.C2>

8.4,Worksheet.iter_cols() 也可以實(shí)現(xiàn)同樣功能

>>> for col in ws.iter_cols(min_row=1, max_col=3, max_row=2):... for cell in col:... print(cell)<Cell Sheet1.A1><Cell Sheet1.A2><Cell Sheet1.B1><Cell Sheet1.B2><Cell Sheet1.C1><Cell Sheet1.C2>

需要注意的時(shí)在 read-only 模式中,Worksheet,iter_cols() 方法不能使用

9,只查看 cell 中的 value

9.1,只查看 worksheet 中的 value 時(shí),可通過 Worksheet.values 屬性,該屬性將迭代 worksheet 中所有行,但返回的僅僅是 cell values

for row in ws.values:for value in row:print(value)

9.2,通過 Worksheet.iter_rows() 和 Worksheet.iter_cols() 也可以實(shí)現(xiàn),在函數(shù)中加入一個(gè)參數(shù) values_only = True 即可返回 cell 的值

>>> for row in ws.iter_rows(min_row=1, max_col=3, max_row=2, values_only=True):... print(row)

(None, None, None)(None, None, None)

10,讀寫文件操作

10,excel 文件加載

openpyxl.load_workbook() 函數(shù)來打開一個(gè)指定本地存儲(chǔ)的 xlsx 文件

>>> from openpyxl import load_workbook>>> wb2 = load_workbook(’test.xlsx’)>>> print wb2.sheetnames[’Sheet2’, ’New Title’, ’Sheet1’]

10.2,excel 文件存儲(chǔ)

Workbook 修改成功后,后創(chuàng)建完成之后,通過Workbook.save(path) 命令即可保存至本地磁盤

>>> wb = Workbook()>>> wb.save(’balances.xlsx’)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: python
相關(guān)文章:
主站蜘蛛池模板: 精品久久久中文字幕一区 | 99久久精品免费看国产一区二区 | 成人毛片网站 | 免费特黄一区二区三区视频一 | 亚洲精品第一区二区在线 | 韩国美女一级毛片 | 久久草网站 | 中国美女黄色一级片 | 成年人在线观看网站 | 亚洲系列中文字幕一区二区 | 日本综合久久 | 中国一级毛片特级毛片 | 亚洲美女高清aⅴ视频免费 亚洲美女黄色片 | 精品久久久久久久久久中文字幕 | 最新国产三级久久 | 热99re久久精品香蕉 | 国内精品一区二区三区最新 | 九九午夜 | 99在线视频精品费观看视 | 九九成人免费视频 | 精品一区二区三区中文 | 亚洲六月丁香六月婷婷蜜芽 | 国产亚洲精 | 成人午夜视频在线播放 | 九九在线精品视频播放 | 午夜香蕉成视频人网站高清版 | 99视频九九精品视频在线观看 | 日本黄大片影院一区二区 | 精品国产_亚洲人成在线高清 | 精品手机在线 | 网红主播大尺度精品福利视频 | 国产一级内谢a级高清毛片 国产一级片毛片 | 久久久久久综合成人精品 | 国产一区二区在线免费观看 | 日本三级香港三级网站 | 久久精品国产大片免费观看 | 福利社色| 午夜日本一区二区三区 | 80岁色老头69av | 日韩一区二区三区视频 | 久久久国产免费影院 |