python中操作excel数据
Posted learn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中操作excel数据相关的知识,希望对你有一定的参考价值。
python操作excel,python有提供库
本文介绍openpyxl,他只支持新型的excell( xlsx)格式,读取速度还可以
1.安装
pip install openpyxl
2.使用
2.1获取excel文件夹,注意:windows下面的路径有反斜杠,加一个r进行区分
wb = openpyxl.load_workbook(r\'d:\\cases.xlsx\')
2.2获取所有表单
sheet=wb.worksheets#获取所有的表单,并把它赋值给sheet sheet=wb.worksheets[0]#通过索引获取具体的一个表单 sheet=wb[\'sheet1\']#可以通过表单名获取,这样获取到了表单,但是用sheet.方法名时,就没有自动提示方法了,如下图所示(pycharm的锅)
2.3读取内容,需要提供行号和列号,注意“行号和列号是从1开始的,因为是excel中,并不是python中
#1.获取某个单元格 sheet=wb.worksheets#获取所有的单元格 cell=sheet.cell(行号,列号) cell.value#获取单元格中的值 #2.获取某一行 sheet[1] #获取某一行的值,不能直接sheet[1].value,因为sheet[1]得到的是元组,而元组没有.value属性,要使用循环 for column in sheet[1]: print(column.value) #获取某一列 sheet[\'A\'] #获取多行,切片的方式,如获取1到3行 sheet[1:3]#第3行是包含的 # 获取所有的数据 toal_data = list(sheet.rows) print(toal_data) for row in toal_data:#获取到一行 for cell in row:#获取行中的某一个值 print(cell.value)
2.4写入 获取到了,直接赋值
2.5 保存
wb.save(文件名)
2.6关闭
wb.close()
""" 1、打开表单 2、读取标题 头部 3、读取所有的数据 (类型是??) 4、指定单元格写入数据(使用静态方法,不要使用实例方法) """ from openpyxl import load_workbook from openpyxl.worksheet.worksheet import Worksheet class ExcelHandler(): """操作 Excel """ def __init__(self, file): """初始化函数""" self.file = file # self.wb = load_workbook(file) def open_sheet(self, name) -> Worksheet: """打开表单. 在函数或者方法的后面 加 -> 类型:表示此函数返回值是一个 这样的类型 函数注解。 """ wb = load_workbook(self.file) sheet = wb[name] wb.close() return sheet def header(self, sheet_name): """获取表单的表头""" sheet = self.open_sheet(sheet_name) headers = [] for i in sheet[1]: headers.append(i.value) return headers def read(self, sheet_name): """读取所有的数据""" sheet = self.open_sheet(sheet_name) rows = list(sheet.rows) # 获取标题 data = [] for row in rows[1:]: row_data = [] for cell in row: row_data.append(cell.value) # 列表转成字典:要和 header 去 zip data_dict = dict(zip(self.header(sheet_name), row_data)) data.append(data_dict) return data @staticmethod def write(file, sheet_name, row, column, data): """写入 Excel 数据""" wb = load_workbook(file) sheet = wb[sheet_name] # 修改单元格 sheet.cell(row, column).value = data # 保存 wb.save(file) # 关闭 wb.close() if __name__ == \'__main__\': excel = ExcelHandler(r\'d:\\cases.xlsx\') excel.write(r\'d:\\cases.xlsx\', \'Sheet1\', 5, 1, \'data_value\')
以上是关于python中操作excel数据的主要内容,如果未能解决你的问题,请参考以下文章
Python应用实战-如何通过python对Excel进行常规性操作