欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python openpyxl方法 zip函數(shù)用法及說明

 更新時(shí)間:2023年05月30日 10:29:59   作者:酒仙橋喝咖啡第一名  
這篇文章主要介紹了python openpyxl方法 zip函數(shù)用法及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

python openpyxl方法 zip函數(shù)

import  os
from openpyxl  import  load_workbook
#導(dǎo)入 os模塊和 openpyxl模塊
# 加載一個(gè)xlsl文件
excel_path = os.path.join(os.path.dirname(os.path.abspath(__file__)),"cla.xlsx")
# 加載文件的工作簿對(duì)象
wb = load_workbook(excel_path)
# 加載指定工作薄
sh = wb["Sheet1"]
# sh = wb["工作簿的名稱"]
# 獲取當(dāng)行的值
print(sh.cell(3,3).value)
print(sh.cell(3,4).value)
#修改某一行的值
sh.cell(1,1).value = "id "
sh.cell(3,3).value ="python"
#修改某一行的值 sh.cell(行,列).value ="想要修改的值"
# 修改后保存 否則修改后不會(huì)生效
wb.save(excel_path)
#把修改后的文件另存為一個(gè)新文件
new_path = os.path.join(os.path.dirname(os.path.abspath(__file__)),"new_cases.xlsx")
wb.save(new_path) 
# 獲取表單中最大的行 列
print(sh.max_row)
print(sh.max_column)
# 通過循環(huán)來遍歷表里面所有的數(shù)據(jù)
for row in list(sh.values):
    print(row)
#未使用zip函數(shù)時(shí)的遍歷    
for values in all_values[1:]:
    print(keys,values)
#通過zip函數(shù)來遍歷我們的鍵和值
#定義一個(gè)空列表
cases_list = []
# 定義一個(gè)變量來接收值
all_values = list(sh.values)
keys = all_values[0]
# 從第一個(gè)開始進(jìn)行遍歷 第0行數(shù)據(jù)是我們的表頭
for values in all_values[1:]:
    case = dict(zip(keys,values))
    #用zip函數(shù)來接受我們的遍歷結(jié)果
    print(case)
    cases_list.append(case)
#zip函數(shù):zip() 函數(shù)用于將可迭代的對(duì)象作為參數(shù),將對(duì)象中對(duì)應(yīng)的元素打包成一個(gè)個(gè)元組,然后返回由這些元組組成的列表。
new1 = {"性別","姓名","年齡","身高"}
new2 = {"男","python菜鳥","21","175"}
#用列表方式接收返回值
res = list(zip(new1,new2))
print(res)
#用字典方式接收返回值
res1 = dict(zip(new1,new2))
print(res1)

Python openpyxl 常用方法即學(xué)即查即用

名詞概念

開始之前請(qǐng)先明確一些概念, 工作簿, 指的就是整個(gè)excel文件, 通常為*.xlsx文件, 在代碼中通常寫作workbook; 工作簿中包含若干個(gè)sheet, 單個(gè)sheet稱之為工作表, 代碼中通常寫作worksheet

如何安裝庫

打開命令行窗口, 輸入

pip install openpyxl

如何新建一個(gè)工作簿

import openpyxl
workbook = openpyxl .Workbook('book.xlsx')  # 在工作目錄下新建一個(gè)名字叫book.xlsx的工作簿; 注意, W為大寫
workbook.save('book.xlsx')  # 保存該工作簿

載入一個(gè)工作表(sheet)

workbook = openpyxl.load_workbook('book.xlsx')

工作表(sheet)的操作方法

activeSheet = workbook.active  # 將默認(rèn)激活的sheet返回到一個(gè)實(shí)例對(duì)象
bookList = workbook.worksheets  # 獲取一個(gè)包含所有工作表(sheet)的列表 到 bookList這個(gè)對(duì)象
sheetTitle = bookList[0].title  # 獲取bookList這個(gè)列表中的第一個(gè)元素(即第一個(gè)sheet)的名稱字符串
workSheet = workbook['sheet1']  # 將sheet1實(shí)例化到一個(gè)worksheet對(duì)象
workSheet = workbook.worksheets[0]  # 將第一個(gè)工作表實(shí)例化到一個(gè)worksheet對(duì)象
workbook.remove(workbook['sheet1'])  # 刪除名為sheet1的工作表, 注意, 括號(hào)中的參數(shù)要給到對(duì)象, 不能給字符串類型
workbook.create_sheet('sheelt2')  # 創(chuàng)建一個(gè)名為sheet2的新工作表
workbook.copy_worksheet(workbook['sheet1']).title = 'sheet_copy'  # 等號(hào)前面為復(fù)制sheet1工作表, 等號(hào)后面為同時(shí)重命名為'sheet_copy'
workbook.sheetnames  # 返回一個(gè)所有sheet名字的列表

單元格(cell)的操作方法

開始之前首先要先實(shí)例化一個(gè)工作表對(duì)象:

workSheet = openpyxl.load_workbook('book.xlsx')

定位單元格方法:

# 方法1:
A1 = workSheet['A1']  # 將單元格A1實(shí)例化到對(duì)象A1
# 方法2:
A1 = workSheet.cell(row=1, column=1)  #將第一行第一列的單元格實(shí)例化到對(duì)象A1
# 方法3:
A1 = workSheet.cell(1, 1)  # 同上, 給定參數(shù)的順序?yàn)樾?>列

獲取區(qū)域單元格的方法:

workSheet['A1:C3']  # 獲取A1到C3之間的所有單元格對(duì)象, 返回類型是以行為單位的元組, 同時(shí)每行也是一個(gè)元組數(shù)據(jù)
workSheet['A:C']  #獲取A~C列的所有單元格對(duì)象, 返回類型是以列為單位的元組, 同時(shí)每列也是一個(gè)元組數(shù)據(jù)
workSheet.iter_rows(min_row=1, max_row=3, min_col=1, max_col=3) # 獲取第1行到第三行, 第1列到第3列的所有單元格對(duì)象
# 獲取單行數(shù)據(jù):
workSheet['1']  # 返回第一行的所有數(shù)據(jù)到一個(gè)元組對(duì)象
# 獲取單列數(shù)據(jù):
workSheet['A']  # 返回A列的所有數(shù)據(jù)到一個(gè)元組對(duì)象
# 獲取整個(gè)工作表數(shù)據(jù):
list(workSheet.values)  #返回一個(gè)列表, 列表中的每個(gè)元素為單行所有數(shù)據(jù)的元組形式
workSheet.rows  # 以行為元組單位返回一個(gè)列表元素
workSheet.columns  # 以列為元組單位返回一個(gè)列表元素

快速獲取每行或每列數(shù)據(jù)的列表的方法:

row = workSheet['1']  # 將第一行實(shí)例化到row對(duì)象
rowList = [each.value for each in row]  # 使用列表表達(dá)式將第一行所有數(shù)據(jù)生成為一個(gè)rowList列表
column = workSheet['A']  # 將第一列實(shí)例化到column對(duì)象
colList = [each.value for each in column]  # 使用列表表達(dá)式將第一行所有數(shù)據(jù)生成為一個(gè)colList列表
# 以獲取行數(shù)據(jù)為例, 完整寫法如下:
row = workSheet['1']
rowList = []
for each in row:
	rowValue = each.value
	rowList.append(rowValue)

獲取工作表的最大行數(shù)與最大列數(shù):

worksheet.max_row  #    獲取當(dāng)前sheet最大行數(shù), 類型為整形
worksheet.max_column  # 獲取當(dāng)前sheet最大列數(shù), 類型為整形

數(shù)字列號(hào)與字母列號(hào)相互轉(zhuǎn)換的方法:

如何將數(shù)字列轉(zhuǎn)換成字母列?

openpyxl.utils.get_column_letter(1)  # 將數(shù)字類型的第一列轉(zhuǎn)換為字母類型A列, 返回類型為字符串

如何將字母列轉(zhuǎn)換成數(shù)字列?

openpyxl.utils.column_index_from_string('AA')  #將字母類型的列號(hào)轉(zhuǎn)換為數(shù)字列號(hào), 返回類型為字符串

獲取單元格行號(hào)與列號(hào)

首先實(shí)例化一個(gè)單元格對(duì)象:

cell = worksheet['C3']  # 將第3行第3列的單元格實(shí)例化到一個(gè)cell元素
cell.row  #    獲取單元格的行號(hào), 類型為int整形
cell.column  # 獲取單元格的列號(hào), 類型為int整形

寫入與插入數(shù)據(jù)

worksheet['A1'] = 'string'  #     在A1單元格寫入字符串'string'
worksheet.cell(1, 1) = 'string  # 在A1單元格寫入字符串'string'
worksheet.insert_cols(idx=1, amount = 5) # 在第一列后插入5列空列
worksheet.insert_rows(idx=1, amount = 5) # 在第一行后插入5列空行
worksheet.delete_rows(idx=1, amount = 5)  # 在第一行后連續(xù)刪除5行
worksheet.delete_cols(idx=1, amount = 5)  # 在第一列后連續(xù)刪除5列

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論