日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

openpyxl 模块的使用

發布時間:2023/12/13 综合教程 33 生活家
生活随笔 收集整理的這篇文章主要介紹了 openpyxl 模块的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
openpyxl模塊簡介:
是用于解決Excel(WPS等均可使用)中擴展名為xlsx/xlsm/xltx/xltm的文件讀寫的第三方庫。xls文件要使用xlwt 、wlrd兩個模塊。

核心概念:
Workbooks,Sheets,Cells。Workbook就是一個excel工作簿;Sheet是工作簿中的一張工作表;Cell就是表的一個單元格。
openpyxl不管讀寫都是:打開Workbook,定位Sheet,操作Cell。


代碼示例:
from openpyxl import Workbook
#創建一個工作薄
wb=Workbook()
# 激活 worksheet
wb.active
#將新創建的EXCLE保存
wb.save(r'E:ETL平臺陳淘淘.xlsx')

==

sheets集合下標從0開始,即第一張表為sheets[0],這里test2的第一個工作表名稱:Sheet1

sht = wb.sheets[0]



示例1:
from  openpyxl import  Workbook
local=r'E:ETL平臺gina_test33.xlsx'# 指定文件路徑
wb=Workbook('gaokexintest')  # 指定文件名稱
ws = wb.create_sheet('1月')  # sheet名稱
wb.save(local)               # 保存 

示例2:
# coding: utf-8
"""
# @Time    : 2021/2/1 15:05
# @Author  : Gina Gao
# @File    : 
# @Software: PyCharm
# @Descript:
"""

import datetime
from random import choice
from time import time
from openpyxl import load_workbook
from openpyxl.utils import get_column_letter
# 設置文件 mingc
addr = r'E:ETL平臺陳淘淘11.xlsx'
# 打開文件
wb = load_workbook(addr)
# 創建一張新表
# ws = wb.create_sheet()
# 第一行輸入
ws = wb['Mysheet']
ws.append(['TIME', 'TITLE', 'A-Z'])

# 輸入內容(500行數據)
for i in range(500):
    # TIME = datetime.datetime.now().strftime("%H:%M:%S")
    TIME=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    TITLE = str(time())
    A_Z = get_column_letter(choice(range(1, 50)))
    ws.append([TIME, TITLE, A_Z])

# 獲取最大行
row_max = ws.max_row
# 獲取最大列
con_max = ws.max_column
# 把上面寫入內容打印在控制臺
for j in ws.rows:    # we.rows 獲取每一行數據
    for n in j:
        print(n.value, end="	")   # n.value 獲取單元格的值
    print()
# 保存,save(必須要寫文件名(絕對地址)默認 py 同級目錄下,只支持 xlsx 格式)
wb.save(addr)

  

新建execle,或是打開excel 并進行增、減 操作  學習網址 https://www.bilibili.com/video/BV1L5411W7wD?p=3&spm_id_from=pageDriver
import openpyxl as vb
local=r'E:ETL平臺gina_test33.xlsx'# 指定文件路徑
wb=vb.load_workbook(local)#工作簿
# print(wb.sheetnames)#打印sheet名稱
# wb.sheetnames
# ws=wb.active #當前sheet 默認名稱
# wss=wb['1月']

"""# 遍歷sheet名稱
wks=wb.worksheets
for i in wks:
    print(i.title)#工作表的名稱
"""
#等價
"""# 遍歷sheet名稱
wksn=wb.sheetnames
for i in wksn:
    print(i)
"""
# wb.remove(wss)#工作簿中刪除工作表
# wb.save(local)
print(wb.sheetnames)
#復制工作表
ws_copy=wb.copy_worksheet(wb['3月'])
# ws_copy.title='8月' #復制工作表并賦予新的工作表名
wb.save(local)

新建excel .批量創建工作簿

import openpyxl as vb
local=r'E:ETL平臺gina_loop.xlsx'# 指定文件路徑
wb=vb.Workbook()#新建EXECL文檔
for i in range(1,11,2):#創建10個工作表,2是步長
    wb.create_sheet('2021年2月'+ str(i) +'日')#i是數字,需轉換為字符串
wb.save(local)

批量更改工作簿名稱

# coding: utf-8
"""
# @Time    : 2021/2/1 17:46
# @Author  : Gina Gao
# @File    :
# @Software: PyCharm
# @Descript:批量更改工作簿名稱
"""
import openpyxl as vb
local=r'E:ETL平臺gina_loop.xlsx'# 指定文件路徑
wb=vb.load_workbook(local)
sn=wb.sheetnames
sn1=wb.worksheets
"""
for i in sn1:
    print(i.title)
    i.title='北京'+'-'+i.title
wb.save(local1)
"""
#等價
"""
for i in sn:
    wb[i].title='北京'+'-'+i
    print(i)
wb.save(local)
"""

  刪除工作簿

import openpyxl as vb
local=r'E:ETL平臺gina_loop.xlsx'# 指定文件路徑
wb=vb.load_workbook(local)
print(wb.sheetnames)
for i in wb:
    print(i.title.split("-"))
    if i.title.split("-")[0]=='上海':#split("-") 用-進行分隔,分隔后 從0開始  上海-2021年  , ['上海','2021年'] 
        wb.remove(wb[i.title])
wb.save(local)
wb.close()

 批量復制模板

import openpyxl as vb
local=r'E:ETL平臺gina_area.xlsx'# 指定文件路徑
local11=r'E:ETL平臺gina_area_copy.xlsx'# 指定文件路徑
wb=vb.load_workbook(local)
for i in range(1,11,1):
    sht_copy=wb.copy_worksheet(wb['地區模板'])
    sht_copy.title='2021年'+'2月'+str(i)+'日'
wb.save(local11)

獲取值定單元格值

import openpyxl as vb
local=r'E:ETL平臺gina_area.xlsx'# 指定文件路徑
local11=r'E:ETL平臺gina_area_copy.xlsx'# 指定文件路徑
wb=vb.load_workbook(local11)
ws=wb['2021年2月1日']
for i in range(1,10,1):
    print(i,ws.cell(row=i,column=2).value)
    print(ws['A1'].value)
獲取行、列
import openpyxl as vb
local=r'E:ETL平臺gina_area.xlsx'# 指定文件路徑
local11=r'E:ETL平臺gina_area_copy.xlsx'# 指定文件路徑
wb=vb.load_workbook(local11)
print(wb.sheetnames)
ws=wb['地區模板']
# 范圍=ws.iter_rows(min_row=1,max_row=10,min_col=1,max_col=3)
#行
# for 行 in ws.rows:
#     for 單元格 in 行:
#         print(單元格.value)
for 列 in ws.columns:
    for 單元格 in 列:
        print(單元格.value)

# print(list(ws.values))
# t=ws.dimensions #查看工作表區域大小
# print(ws.values)
# Range=ws[t]#單元格區域 一行一行取值
#Range=ws['A:C']#單元格區域按列取值
# Range=ws['A1:G20']#單元格區域按列取值
# for row_ in Range:
#     for col_ in row_:
#         print(col_.value)

  

# 根據列的數字返回字母或字母返回列的數字

import openpyxl as vb
數字轉字母=vb.utils.get_column_letter(5)
print(數字轉字母)
字母轉數字=vb.utils.column_index_from_string('Z')
print(字母轉數字)

####等價于

from openpyxl.utils import get_column_letter,column_index_from_string
# 根據列的數字返回字母
print(get_column_letter(2))  # B
# 根據字母返回列的數字
print(column_index_from_string('D'))  # 4
#動態讀數據
#動態讀數據
import openpyxl as vb
路徑=r'E:ETL平臺gina_test.xlsx'
工作簿=vb.load_workbook(路徑)
# print(工作簿.sheetnames)
工作表=工作簿['Sheet1']
# print(工作表.dimensions)#表范圍
#A1:D6
最大行=工作表.max_row #6
最大列=工作表.max_column#4
print(最大行,最大列)
A1單元格的值=工作表['A1'].value #等價于  工作表.cell(1,1).value
print(A1單元格的值)
A1單元格的行=工作表['A1'].row
print(A1單元格的行)
A1單元格的列=工作表['A1'].column
print(A1單元格的列)
#獲取D列值
列表=[]
for i in 工作表['D']:
    #print(i,i.value)
    列表.append(i.value)
#PS 想要加減乘除一定要放到列表中操作,可以用切片
print(列表)#['英語', 80, 90, 100, 110, 120]
print(列表[1:])#[80, 90, 100, 110, 120] 切片從第二位開始
print(sum(列表[1:]))#列相加


列表1=[]
for i in 工作表[2]:# 表頭一行   工作表[1]
    print(i.value)
    列表1.append(i.value)
print(sum(列表1[1:]))#列相加

  




總結

以上是生活随笔為你收集整理的openpyxl 模块的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。