时间:2020-12-02 python教程 查看: 974
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表格读取写入的案例详解的文章就介绍到这了,更多相关Python表格读取写入内容请搜索python博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持python博客!