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)文章
Python+imbox庫實現(xiàn)郵件讀取與刪除和附件下載
這篇文章主要為大家詳細(xì)介紹了Python如何使用imbox庫實現(xiàn)郵件讀取與刪除以及附件下載,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2025-02-02python 劃分?jǐn)?shù)據(jù)集為訓(xùn)練集和測試集的方法
今天小編就為大家分享一篇python 劃分?jǐn)?shù)據(jù)集為訓(xùn)練集和測試集的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12Python讀取Windows和Linux的CPU、GPU、硬盤等部件溫度的讀取方法
本文詳細(xì)介紹了如何使用Python在Windows和Linux系統(tǒng)上通過OpenHardwareMonitor和psutil庫讀取CPU、GPU等部件的溫度,包括Windows下的兩種方法以及Linux下的簡單實現(xiàn),感興趣的小伙伴跟著小編一起來看看吧2025-02-02jupyter notebook 調(diào)用環(huán)境中的Keras或者pytorch教程
這篇文章主要介紹了jupyter notebook 調(diào)用環(huán)境中的Keras或者pytorch教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04python 定時器,實現(xiàn)每天凌晨3點執(zhí)行的方法
今天小編就為大家分享一篇python 定時器,實現(xiàn)每天凌晨3點執(zhí)行的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-02-02在Python中調(diào)用Ping命令,批量IP的方法
今天小編就為大家分享一篇在Python中調(diào)用Ping命令,批量IP的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01