python3-常用模块之openpyxl(2)封装
时间:2019-10-10
本文章向大家介绍python3-常用模块之openpyxl(2)封装,主要包括python3-常用模块之openpyxl(2)封装使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
简单封装了下openpyxl,仅供参考,openpyxl版本2.6.2
#操作存在的文件
from openpyxl import Workbook
from openpyxl import load_workbook
from openpyxl.styles import colors
from openpyxl.styles import Font
class ParseExcel:
# 初始化表格
def __init__(self,excel_file_path):
self.excel_file_path = excel_file_path
self.wb = load_workbook(excel_file_path)
self.ws = self.wb.active
# 通过sheet名获取sheet表
def get_sheet_by_name(self,sheet_name):
self.ws = self.wb.get_sheet_by_name(sheet_name)
# sheet = self.wb[sheet_name] # 方式二也可以
return self.ws
# 通过索引获取sheet表
def get_sheet_by_index(self,index):
sheet_name = self.wb.sheetnames[index-1]
self.ws = self.wb[sheet_name]
return self.ws
# 获取所有的sheet名,列表格式
def get_all_sheet_names(self):
return self.wb.sheetnames
# 获取单元格数据
def get_cell_value(self,row_no,col_no,sheet_name=None):
if sheet_name == None:
return self.ws.cell(row=row_no, column=col_no).value
return self.wb[sheet_name].cell(row=row_no, column=col_no).value
# 获取单元格对象
def get_cell_obj(self,row_no,col_no,sheet_name=None):
if sheet_name == None:
return self.ws.cell(row=row_no, column=col_no)
return self.wb[sheet_name].cell(row=row_no, column=col_no)
# 获取最大行号
def get_max_row_num(self,sheet_name=None):
if sheet_name == None:
return self.ws.max_row
return self.get_sheet_by_name(sheet_name).max_row
# 获取最大列号
def get_max_col_num(self,sheet_name=None):
if sheet_name == None:
return self.ws.max_column
return self.get_sheet_by_name(sheet_name).max_column
# 获取最小行号,默认为1
def get_min_row_num(self,sheet_name=None):
if sheet_name == None:
return self.ws.min_row
return self.get_sheet_by_name(sheet_name).min_row
# 获取最小列号,默认为1
def get_min_col_num(self,sheet_name=None):
if sheet_name == None:
return self.ws.min_column
return self.get_sheet_by_name(sheet_name).min_column
# 获取某行的值,rows中的行以0开始
def get_some_row_value(self,row_no,sheet_name=None):
row_value = []
if sheet_name is not None:
self.get_sheet_by_name(sheet_name)
for i in list(self.ws.rows)[row_no-1]:
row_value.append(i.value)
return row_value
# 获取某列的值,columns中的行以0开始
def get_some_col_value(self,col_no,sheet_name=None):
col_value = []
if sheet_name is not None:
self.get_sheet_by_name(sheet_name)
for i in list(self.ws.columns)[col_no-1]:
col_value.append(i.value)
return col_value
#保存单元格
def save_excel(self):
self.wb.save(self.excel_file_path)
#单元格写入内容
def write_cell_value(self,row_no,col_no,value,style=None,sheet_name=None):
if sheet_name is not None:
self.get_sheet_by_name(sheet_name)
if style == None:
style = colors.BLACK
elif style.upper() == "RED":
style = colors.RED
elif style.upper() == "GREEN":
style = colors.GREEN
self.ws.cell(row=row_no, column=col_no).font=Font(color=style)
self.ws.cell(row=row_no,column=col_no).value = value
self.save_excel()
return True
if __name__ == "__main__":
pe = ParseExcel("sample_demo.xlsx")
# ws = pe.get_sheet_by_name('表1')
# print(pe.get_cell_value(1,1,'表1'))
# print(pe.get_cell_obj(1,1,'表1'))
# print(pe.get_cell_obj(1,1))
pe.write_cell_value(10,10,"nihao",style="red",sheet_name="表1")
pe.write_cell_value(10,11,"钉钉",style="green",sheet_name="表1")
原文地址:https://www.cnblogs.com/tester-star/p/11650267.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法