最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python自動化辦公Excel模塊openpyxl原理及用法解析

 更新時間:2020年11月05日 09:03:02   作者:zeroing1  
這篇文章主要介紹了Python自動化辦公Excel模塊openpyxl原理及用法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

openpyxl 介紹

openpyxl 是一個直接可用于讀寫 xlsx 、xlsm、xltx、xltm 文件的 Python 內置庫,借助它可以利用 Python 語法對本地 xlsx 文件進行自動化批量操作

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

pip install openpyxl

xlsx 文件屬性

在對 Excel 表格處理之前,需要了解一下 xlsx 文件的幾個名詞解釋及構造

1,Workbook 指的是神什么?

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

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

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

openpyxl 基本命令操作

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

from openpypl import Wrokbook
from openpyxl.utils import get_column_letter

wb = Workbook()
ws1 = wb.active

一個 Workbook 默認至少含有一個 worksheet ,通過命令 Workbook.active 來獲取當前第一個 sheet(也就是第一個 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
# or
ws3 = wb.create_sheet("Mysheet", -1) # insert at the penultimate position

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

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

3,更改 sheet 的名字

一行代碼即可

ws.title = 'New Title'

4,更改 sheet 上 tab 背景顏色

ws.sheet_properties.tabColor = "1072BA"

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

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

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

通過 Workbook.sheetname 命令即可查看

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

# 或者用迭代方法

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

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

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

# 將 source 中的worksheet復制到 target 中去

source = wb.active
target = wb.copy_worksheet(source)

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

7,獲取某個 cell 的數據

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

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

ws['A4'] = 4

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

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

  • row 表示指定行
  • columns 表示指定列
  • value 表示該單元格中需替代的數據值;當此參數不設置時表示只對該 cell 創(chuàng)建內存空間,不賦值

例如

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

8,獲取多個單元格

8.1 , openpyxl 也可以進行切片操作,來獲取多個單元格

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

8.2, worksheet 中多行多列數據獲取方式相似

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

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

>>> 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() 也可以實現同樣功能

>>> 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>

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

9,只查看 cell 中的 value

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

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

9.2,通過 Worksheet.iter_rows() 和 Worksheet.iter_cols() 也可以實現,在函數中加入一個參數 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() 函數來打開一個指定本地存儲的 xlsx 文件

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

10.2,excel 文件存儲

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

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Djang的model創(chuàng)建的字段和參數詳解

    Djang的model創(chuàng)建的字段和參數詳解

    這篇文章主要介紹了Djang的model創(chuàng)建的字段和參數詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • python提取特定格式的數據的操作方法

    python提取特定格式的數據的操作方法

    這篇文章主要介紹了python提取特定格式的數據,通過本腳本,我們學習了如何使用 Pandas 讀取和處理 Excel 數據,如何使用 Tkinter 創(chuàng)建圖形用戶界面,以及如何處理文件對話框和文件操作,需要的朋友可以參考下
    2024-06-06
  • Python線程創(chuàng)建和終止實例代碼

    Python線程創(chuàng)建和終止實例代碼

    這篇文章主要介紹了Python線程創(chuàng)建和終止實例代碼,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • python pygame實現滾動橫版射擊游戲城市之戰(zhàn)

    python pygame實現滾動橫版射擊游戲城市之戰(zhàn)

    這篇文章主要為大家詳細介紹了python pygame實現滾動橫版射擊游戲城市之戰(zhàn),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Python&Matlab實現櫻花的繪制

    Python&Matlab實現櫻花的繪制

    正值櫻花飄落的季節(jié),本文將利用Python和Matlab分別繪制一顆櫻花樹,文中的示例代碼講解詳細,感興趣的小伙伴快跟隨小編一起動手嘗試一下
    2022-04-04
  • django的使用步驟入門教程(很詳細)

    django的使用步驟入門教程(很詳細)

    隨著IT行業(yè)的不斷發(fā)展,編程學習也越來越重要,很多人都開啟了很多計算機語言的學習,下面這篇文章主要給大家介紹了關于django的使用步驟入門教程,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-05-05
  • itchat接口使用示例

    itchat接口使用示例

    這篇文章主要介紹了itchat接口使用示例,itchat接口的相關知識,這里是一段代碼示例,這里分享給大家,供需要的朋友參考。努力學習中~
    2017-10-10
  • 淺析Python面向對象編程

    淺析Python面向對象編程

    這篇文章主要介紹了Python面向對象編程的相關資料,文中示例代碼非常詳細,幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • Python之PyQt6對話框的實現

    Python之PyQt6對話框的實現

    這篇文章主要介紹了Python之PyQt6對話框的實現,文章內容詳細,簡單易懂,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2023-01-01
  • pandas如何將表中的字符串轉成數值型

    pandas如何將表中的字符串轉成數值型

    在用pd.read_csv讀數據時,將要轉換數據類型的列名和類型名構成字典,傳給dtype,怎么轉換呢,下面小編給大家分享下pandas將表中的字符串轉成數值型,感興趣的朋友一起看看吧
    2023-02-02

最新評論

来宾市| 中超| 伊宁县| 肇东市| 通城县| 宿松县| 宣化县| 北海市| 通榆县| 五峰| 奇台县| 江都市| 安仁县| 广宗县| 颍上县| 嘉荫县| 句容市| 基隆市| 海淀区| 涞水县| 荥经县| 临西县| 济南市| 镇巴县| 英山县| 神池县| 九台市| 安宁市| 大余县| 富川| 包头市| 平远县| 浦县| 灵璧县| 平湖市| 关岭| 田阳县| 广南县| 嘉兴市| 营口市| 新闻|