赞
踩
python中excel操作
# coding=utf-8 """ excel操作使用openpyxl 作用:excel存测试数据 一.安装第三方库 pip install openpyxl==3.0.7 二.excel 组成 1.excel文件==表格对象 一个表格对象有多个表单对象 小区大门 2.表单==表单对象 一个表单对象有多个单元格对象 单元门 3.单元格==单元对象 单元格对象是excel的最小组成部分 你家的门 三. 操作步骤 from openpyxl import load_workbook # 第一步创建表格对象 wb = load_workbook(filename='cases.xlsx') # 第二步获取表单对象 sheet_obj = wb["Sheet1"] # 第三步获取单元格对象 cell_obj = sheet_obj["B3"] cell_obj2 = sheet_obj.cell(4, 2) print(cell_obj) # 第四步获取对应单元格值 print(cell_obj.value) print(cell_obj2.value) # 第五步关闭excel连接 wb.close() 四.行操作 1.result =sheet_obj.iter_rows() #min_row=None, max_row=None, min_col=None, max_col=None, values_only=False min_row=None : 最小的行索引值(索引从1开始,必须是int类型,默认是1) max_row=None : 最大的行索引值(索引从1开始,必须是int类型,默认是最大的行) min_clo=None : 最小的列索引值(索引从1开始,必须是int类型,默认是1) max_col=None : 最大的列索引值(索引从1开始,必须是int类型,默认是最大的列) values_only=False :True获取到的是value值,False拿到的是对象需要通过value属性获取对应的值 注意点:切片是闭区间,包含起始和结束索引对应的行的数据 2.获取最大行 print(sheet_obj.max_row) 3.获取最大的列 print(sheet_obj.max_column) 五.列操作 result = sheet_obj.iter_cols(min_col=1, max_col=6, values_only=True) wb = load_workbook(filename='cases.xlsx', read_only=False) read_only=False: 可以直接获取列 read_only=True: 如果是True,列切片不可以直接读取值 """ from openpyxl import load_workbook wb = load_workbook(filename='cases.xlsx', read_only=False) # read_only =False: 如果是True,列切片不可以直接读取值 sheet_obj = wb['Sheet1'] # 行切片 # 获取所有的表单名称 # print(wb.sheetnames) # 根据名称获取对应的表单对象 # for i in wb.sheetnames: # print(wb[i]) # False拿到的是对象需要通过value属性获取对应的值 # result = sheet_obj.iter_rows(min_row=1, max_row=3, min_col=1, max_col=6, values_only=False) # for i in result: # for j in i: # print(j.value) # True获取到的是value值 # result = sheet_obj.iter_rows(min_row=1, max_row=4, min_col=1, max_col=6, values_only=True) # print(list(result)) # 列切片 # result = sheet_obj.iter_cols(min_col=1, max_col=6, values_only=False) # for i in result: # for j in i: # print(j.value) # read_only=False(必须是False):可以直接获取列的值 result = sheet_obj.iter_cols(min_col=1, max_col=6, values_only=True) print(list(result)) wb.close()
# codingg=utf-8 from openpyxl import load_workbook class Excel: def __init__(self, name, sheet_name): self.wb = load_workbook(name, read_only=False) self.sheet_obj = self.wb[sheet_name] def get_data(self): data_list = [] result = list(self.sheet_obj.iter_rows(values_only=True)) result_title = result[0] result_value = result[1:] for i in result_value: result_dict = list(zip(result_title, i)) data_list.append(result_dict) self.close_file() return data_list def close_file(self): self.wb.close() if __name__ == '__main__': from pprint import pprint excel = Excel('cases.xlsx', 'Sheet1') result = excel.get_data() pprint(result)
from openpyxl import load_workbook # 1.获取表格对象 wb = load_workbook(filename='cases.xlsx') # 2.获取表单对象 sheet_obj = wb['Sheet1'] # 3.写入数据(覆盖) # sheet_obj['A1'] = 'py52' # sheet_obj.cell(row=1, column=2, value='test_value') # 追加写入(不覆盖数据) # 接受可迭代对象:list,tuple,dict,生成器 test_list = [1, 2, 3, 4, 5] test_dict = {'A': 'test1', 'B': 'test2'} sheet_obj.append(test_dict) wb.save('cases.xlsx') print(sheet_obj['B1'].value) wb.close()
如果代码有错误,希望大家提出来
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。