您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關利用Python-openpyxl如何實現表格的讀取寫入,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
1.為何選擇openpyxl模塊
xlxd、xlwt、–只能讀取,openpyxl、可以讀取寫入
2.安裝
pip install -i https://pypi.douban.com/simple openpyxl==2.6.2
3.處理對象
openpyxl只能處理xlsx格式的excel文件,只能使用辦公軟件來創建xlsx格式的excel文件,不能使用pycharm來創建
excel對象 -> sheet表單對象 -> cell單元格對象 -> 行和列、值屬性
如果excel文件不存在,那么會FileNotFoundError
res = load_workbook(“testcase11.xlsx”)
4.代碼案例
from openpyxl import load_workbook # load_workbook,往往對已存在的excel進行讀寫操作 class Handle_excel: def __init__(self,filename,sheetname = None): self.filename = filename self.sheetname = sheetname def read_data(self): """ 讀取表格數據 :return: """ wb = load_workbook(self.filename) if self.sheetname is None: ws = wb.active # active默認讀取第一個表單 else: ws = wb[self.sheetname] # 讀取指定表單 testcase_list = [] # 所有數據信息 header_list = [] # 表頭信息 for row in range(1,ws.max_row+1): one_row_dict = {} # 每一行數據信息 for column in range(1,ws.max_column+1): one_cell_value = ws.cell(row,column).value # cell方法,獲取單元格,返回Cell對象 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: 待寫入的數據 :return: """ # 將數據寫入到excel中,不能與讀取操作公用一個Workbook對象 # 如果使用同一個Workbook對象,只能將最后一次寫入成功,會出現意想不到的結果 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' # 對exel文件修改之后,要保存,一定要將excel文件關閉 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)
關于利用Python-openpyxl如何實現表格的讀取寫入就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。