简单封装了下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")

python3-常用模块之openpyxl(2)封装的更多相关文章

  1. python3 常用模块详解

    这里是python3的一些常用模块的用法详解,大家可以在这里找到它们. Python3 循环语句 python中模块sys与os的一些常用方法 Python3字符串 详解 Python3之时间模块详述 ...

  2. python3 常用模块

    一.time与datetime模块 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们 ...

  3. Python3常用模块的安装

    1.mysql驱动:mysql-connector-python 1.安装 $ pip3 install mysql-connector-python --allow-external mysql-c ...

  4. Python3 常用模块3

    目录 numpy模块 创建numpy数组 numpy数组的属性和用法 matplotlib模块 条形图 直方图 折线图 散点图 + 直线图 pandas模块 numpy模块 numpy模块可以用来做数 ...

  5. Python3 常用模块2

    目录 time 模块 时间戳形式 格式化时间 结构化时间 time.time() time.sleep() datetime 模块 random 模块 hashlib 模块 和 hmac 模块 typ ...

  6. Python3 常用模块1

    目录 os模块 对文件夹操作 对文件进行操作 sys模块 json 和pickle模块 logging模块 日志等级 longging模块的四大组件 自定义配置 os模块 通过os模块我们可以与操作系 ...

  7. Python3基础(5)常用模块:time、datetime、random、os、sys、shutil、shelve、xml处理、ConfigParser、hashlib、re

    ---------------个人学习笔记--------------- ----------------本文作者吴疆-------------- ------点击此处链接至博客园原文------ 1 ...

  8. 常用模块 - openpyxl模块

    一.简介 xlrd/xlwt 主要是针对Office 2003或更早版本的XLS文件格式 缺点:不支持XLSX文件格式 OpenPyXL 能读能写能修改 缺点:不支持XLS Microsoft Exc ...

  9. Python3基础笔记--常用模块

    目录: 参考博客:Python 之路 Day5 - 常用模块学习 Py西游攻关之模块 一.time模块 二.random模块 三.os模块 四.sys模块 五.hashlib模块 六.logging模 ...

随机推荐

  1. shell 脚本 功能性语句 read,expr,test

    1. read 从终端输入数据赋值给变量 read val 把读入的数据存放到val中 #!/bin/bash echo -n "please input two number :" ...

  2. 2019.2.23VScode的c++配置详细方法

    根据个人经验,最新的c++配置方法. 主要的步骤: 安装Vscode 在Vscode类安装c++插件 安装编译调试环境 修改Vscode配置文件. 安装Vscode的步骤省略 如何配置Vscode中文 ...

  3. 宝塔面板安装swoole扩展

    Swoole是一个PHP扩展,扩展不是为了提升网站的性能,是为了提升网站的开发效率.最少的性能损耗,换取最大的开发效率.利用Swoole扩展,开发一个复杂的Web功能,可以在很短的时间内完成 Swoo ...

  4. Linux 指令查询帮助

    man +指令名 例子: man rename

  5. 类文件路径一classpath

    classpath作用 指定配置/资源文件的路径 web文件夹层次 src(编译前) main java resources webapp test java resources pom.xml we ...

  6. Makefile 从入门到放弃

    //如有侵权 请联系我进行删除 email:YZFHKM@163.com { 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作, ...

  7. XML、JSON、ProtocolBuffer特点比较

    XML JSON PB Lua 数据结构支持 复杂结构 简单结构 较复杂结构 复杂结构 数据保存方式 文本 文本 二进制 文本 数据保存大小 大 一般 小 一般 解析效率 慢 一般 快 稍快 语言支持 ...

  8. NPM 使用介绍(包管理工具,解决NodeJS代码部署上的很多问题)

    引用地址:http://www.runoob.com/nodejs/nodejs-npm.html NPM 使用介绍 NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问 ...

  9. 如何解决:修改.gitignore后,不生效

    1.git rm -r --cached . 删除缓存 2.git add .   添加要提交的文件 3.git commit -m "update .gitignore" 提交 ...

  10. 大半宿,封装了一个MP3播放器的类,写了个简陋的播放器

    用 winmm.lib 写的 封装不是很好,而且没有优化,效率可能有问题,但是现在几乎没有什么大问题 我用我封装的类,写了一个小播放器,界面上的所有功能都实现了,包括双击列表中的文件名,直接播放文件 ...