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

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

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

python openpyxl方法 zip函數(shù)

import  os
from openpyxl  import  load_workbook
#導(dǎo)入 os模塊和 openpyxl模塊
# 加載一個xlsl文件
excel_path = os.path.join(os.path.dirname(os.path.abspath(__file__)),"cla.xlsx")
# 加載文件的工作簿對象
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 ="想要修改的值"
# 修改后保存 否則修改后不會生效
wb.save(excel_path)
#把修改后的文件另存為一個新文件
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ù)時的遍歷    
for values in all_values[1:]:
    print(keys,values)
#通過zip函數(shù)來遍歷我們的鍵和值
#定義一個空列表
cases_list = []
# 定義一個變量來接收值
all_values = list(sh.values)
keys = all_values[0]
# 從第一個開始進(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ù)用于將可迭代的對象作為參數(shù),將對象中對應(yīng)的元素打包成一個個元組,然后返回由這些元組組成的列表。
new1 = {"性別","姓名","年齡","身高"}
new2 = {"男","python菜鳥","21","175"}
#用列表方式接收返回值
res = list(zip(new1,new2))
print(res)
#用字典方式接收返回值
res1 = dict(zip(new1,new2))
print(res1)

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

名詞概念

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

如何安裝庫

打開命令行窗口, 輸入

pip install openpyxl

如何新建一個工作簿

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

載入一個工作表(sheet)

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

工作表(sheet)的操作方法

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

單元格(cell)的操作方法

開始之前首先要先實例化一個工作表對象:

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

定位單元格方法:

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

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

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

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

row = workSheet['1']  # 將第一行實例化到row對象
rowList = [each.value for each in row]  # 使用列表表達(dá)式將第一行所有數(shù)據(jù)生成為一個rowList列表
column = workSheet['A']  # 將第一列實例化到column對象
colList = [each.value for each in column]  # 使用列表表達(dá)式將第一行所有數(shù)據(jù)生成為一個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ù)字列號與字母列號相互轉(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')  #將字母類型的列號轉(zhuǎn)換為數(shù)字列號, 返回類型為字符串

獲取單元格行號與列號

首先實例化一個單元格對象:

cell = worksheet['C3']  # 將第3行第3列的單元格實例化到一個cell元素
cell.row  #    獲取單元格的行號, 類型為int整形
cell.column  # 獲取單元格的列號, 類型為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é)

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

相關(guān)文章

最新評論