Python-openpyxl表格讀取寫入的案例詳解
1.為何選擇openpyxl模塊
xlxd、xlwt、?只能讀取,openpyxl、可以讀取寫入
2.安裝
pip install -i https://pypi.douban.com/simple openpyxl==2.6.2
3.處理對(duì)象
openpyxl只能處理xlsx格式的excel文件,只能使用辦公軟件來創(chuàng)建xlsx格式的excel文件,不能使用pycharm來創(chuàng)建excel對(duì)象 -> sheet表單對(duì)象 -> cell單元格對(duì)象 -> 行和列、值屬性如果excel文件不存在,那么會(huì)FileNotFoundErrorres = load_workbook(“testcase11.xlsx”)
4.代碼案例
from openpyxl import load_workbook# load_workbook,往往對(duì)已存在的excel進(jìn)行讀寫操作class Handle_excel: def __init__(self,filename,sheetname = None): self.filename = filename self.sheetname = sheetname def read_data(self): ''' 讀取表格數(shù)據(jù) :return: ''' wb = load_workbook(self.filename) if self.sheetname is None: ws = wb.active # active默認(rèn)讀取第一個(gè)表單 else: ws = wb[self.sheetname] # 讀取指定表單 testcase_list = [] # 所有數(shù)據(jù)信息 header_list = [] # 表頭信息 for row in range(1,ws.max_row+1): one_row_dict = {} # 每一行數(shù)據(jù)信息 for column in range(1,ws.max_column+1):one_cell_value = ws.cell(row,column).value # cell方法,獲取單元格,返回Cell對(duì)象if row == 1: header_list.append(one_cell_value)else: key = header_list[column-1] one_row_dict[key] = one_cell_value if row != 1:testcase_list.append(one_row_dict) return testcase_list def write_data(self, row, column, data): ''' 寫操作 :param row: 指定在某一行寫 :param column: 指定在某一列寫 :param data: 待寫入的數(shù)據(jù) :return: ''' # 將數(shù)據(jù)寫入到excel中,不能與讀取操作公用一個(gè)Workbook對(duì)象 # 如果使用同一個(gè)Workbook對(duì)象,只能將最后一次寫入成功,會(huì)出現(xiàn)意想不到的結(jié)果 wb = load_workbook(self.filename) if self.sheetname is None: ws = wb.active else: ws = wb[self.sheetname] # 第一種寫入方式: # one_cell = ws.cell(row, column) # one_cell.value = data # 第二種寫入方式: ws.cell(row, column, value=data) # c.PermissionError: [Errno 13] Permission denied: ’testcase.xlsx’ # 對(duì)exel文件修改之后,要保存,一定要將excel文件關(guān)閉 wb.save(self.filename)if __name__ == '__main__': excel_name =“testcase.xlsx' sheet_name = 'login' do_excel = Handle_excel(excel_name,sheet_name) print(do_excel.read_data()) #do_excel.write_data(3,4,5)
到此這篇關(guān)于Python-openpyxl表格讀取寫入的案例詳解的文章就介紹到這了,更多相關(guān)Python表格讀取寫入內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. JSP+Servlet實(shí)現(xiàn)文件上傳到服務(wù)器功能2. 利用ajax+php實(shí)現(xiàn)商品價(jià)格計(jì)算3. 利用FastReport傳遞圖片參數(shù)在報(bào)表上展示簽名信息的實(shí)現(xiàn)方法4. chat.asp聊天程序的編寫方法5. python之cur.fetchall與cur.fetchone提取數(shù)據(jù)并統(tǒng)計(jì)處理操作6. PHP循環(huán)與分支知識(shí)點(diǎn)梳理7. jsp實(shí)現(xiàn)textarea中的文字保存換行空格存到數(shù)據(jù)庫的方法8. JSP之表單提交get和post的區(qū)別詳解及實(shí)例9. Ajax請(qǐng)求超時(shí)與網(wǎng)絡(luò)異常處理圖文詳解10. jsp實(shí)現(xiàn)登錄驗(yàn)證的過濾器
