电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

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

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

openpyxl 介紹

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

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

pip install openpyxl

xlsx 文件屬性

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

1,Workbook 指的是神什么?

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

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

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

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

openpyxl 基本命令操作

1, 創建 一個空的 workbook

from openpypl import Wrokbookfrom openpyxl.utils import get_column_letter

wb = Workbook()ws1 = wb.active

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

2,創建新的 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() 命令創建新的 worksheet , create_sheet 默認有兩個參數 name、index;

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

3,更改 sheet 的名字

一行代碼即可

ws.title = ’New Title’

4,更改 sheet 上 tab 背景顏色

ws.sheet_properties.tabColor = '1072BA'

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

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

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

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

通過 Workbook.sheetname 命令即可查看

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

# 或者用迭代方法

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

6,將現有的 worksheets 復制新創建的 workbook 中

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

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

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

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

7,獲取某個 cell 的數據

成功創建完 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 創建內存空間,不賦值

例如

>>> 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 中行列范圍,再利用循環迭代獲取每一個單元格數據

>>> 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 修改成功后,后創建完成之后,通過Workbook.save(path) 命令即可保存至本地磁盤

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

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

標簽: python
相關文章:
主站蜘蛛池模板: 全自动贴标机-套标机-工业热风机-不干胶贴标机-上海厚冉机械 | 彭世修脚_修脚加盟_彭世修脚加盟_彭世足疗加盟_足疗加盟连锁_彭世修脚技术培训_彭世足疗 | 上海办公室设计_办公楼,写字楼装修_办公室装修公司-匠御设计 | UV-1800紫外光度计-紫外可见光度计厂家-翱艺仪器(上海)有限公司 | 河北中仪伟创试验仪器有限公司是专业生产沥青,土工,水泥,混凝土等试验仪器的厂家,咨询电话:13373070969 | 恒温恒湿试验箱厂家-高低温试验箱维修价格_东莞环仪仪器_东莞环仪仪器 | 陕西视频监控,智能安防监控,安防系统-西安鑫安5A安防工程公司 | 冷藏车-东风吸污车-纯电动环卫车-污水净化车-应急特勤保障车-程力专汽厂家-程力专用汽车股份有限公司销售二十一分公司 | 杭州火蝠电商_京东代运营_拼多多全托管代运营【天猫代运营】 | 培训无忧网-教育培训咨询招生第三方平台 | 全温度恒温培养摇床-大容量-立式-远红外二氧化碳培养箱|南荣百科 | 天津散热器_天津暖气片_天津安尼威尔散热器制造有限公司 | 电抗器-能曼电气-电抗器专业制造商 | 警用|治安|保安|不锈钢岗亭-售货亭价格-垃圾分类亭-移动厕所厂家-苏州灿宇建材 | 搪玻璃冷凝器_厂家-越宏化工设备 | 卡诺亚轻高定官网_卧室系统_整家定制_定制家居_高端定制_全屋定制加盟_定制家具加盟_定制衣柜加盟 | 防渗土工膜|污水处理防渗膜|垃圾填埋场防渗膜-泰安佳路通工程材料有限公司 | OpenI 启智 新一代人工智能开源开放平台 | 雄松华章(广州华章MBA)官网-专注MBA/MPA/MPAcc/MEM辅导培训 | 低浓度恒温恒湿称量系统,强光光照培养箱-上海三腾仪器有限公司 | 柴油发电机组_柴油发电机_发电机组价格-江苏凯晨电力设备有限公司 | 压力变送器-上海武锐自动化设备有限公司| 呼末二氧化碳|ETCO2模块采样管_气体干燥管_气体过滤器-湖南纳雄医疗器械有限公司 | 抖音短视频运营_企业网站建设_网络推广_全网自媒体营销-东莞市凌天信息科技有限公司 | 模切之家-专注服务模切行业的B2B平台! | 体检车_移动CT车_CT检查车_CT车_深圳市艾克瑞电气有限公司移动CT体检车厂家-深圳市艾克瑞电气有限公司 | 恒温油槽-恒温水槽-低温恒温槽厂家-宁波科麦仪器有限公司 | 卫生纸复卷机|抽纸机|卫生纸加工设备|做卫生纸机器|小型卫生纸加工需要什么设备|卫生纸机器设备多少钱一台|许昌恒源纸品机械有限公司 | 成都珞石机械 - 模温机、油温机、油加热器生产厂家 | 山东聚盛新型材料有限公司-纳米防腐隔热彩铝板和纳米防腐隔热板以及钛锡板、PVDF氟膜板供应商 | 中开泵,中开泵厂家,双吸中开泵-山东博二泵业有限公司 | 杭州双螺杆挤出机-百科| 一体化污水处理设备_生活污水处理设备_全自动加药装置厂家-明基环保 | 精密钢管,冷拔精密无缝钢管,精密钢管厂,精密钢管制造厂家,精密钢管生产厂家,山东精密钢管厂家 | ETFE膜结构_PTFE膜结构_空间钢结构_膜结构_张拉膜_浙江萬豪空间结构集团有限公司 | 分类168信息网 - 分类信息网 免费发布与查询 | 安徽控制器-合肥船用空调控制器-合肥家电控制器-合肥迅驰电子厂 安徽净化板_合肥岩棉板厂家_玻镁板厂家_安徽科艺美洁净科技有限公司 | POS机官网 - 拉卡拉POS机免费办理|官网在线申请入口 | 工装定制/做厂家/公司_工装订做/制价格/费用-北京圣达信工装 | 立刷【微电签pos机】-嘉联支付立刷运营中心 | 西宁装修_西宁装修公司-西宁业之峰装饰-青海业之峰墅级装饰设计公司【官网】 |