Python-openpyxl表格读取写入的案例详解
(编辑:jimmy 日期: 2024/11/3 浏览:3 次 )
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)
下一篇:详解Python3.8+PyQt5+pyqt5-tools+Pycharm配置详细教程