简单封装了下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. 错误Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataInputStream排查思路

    spark1(默认CDH自带版本)不存在这个问题,主要是升级了spark2(CDHparcel升级)版本安装后需要依赖到spark1的旧配置去读取hadoop集群的依赖包. 1./etc/spark2 ...

  2. 使用mapreduce对日志进行清洗

    网站日志分析项目案例(一)项目介绍:http://www.cnblogs.com/edisonchou/p/4449082.html 网站日志分析项目案例(二)数据清洗:当前页面 网站日志分析项目案例 ...

  3. 2019-7-29-asp-dotnet-core-从-Frp-获取用户真实-IP-地址

    title author date CreateTime categories asp dotnet core 从 Frp 获取用户真实 IP 地址 lindexi 2019-07-29 08:28: ...

  4. META标签的定义与使用(一、HTTP标题信息(http-equiv))

    META标签分两大部分:HTTP标题信息(http-equiv)和页面描述信息(name). 一.http-equiv类似于HTTP的头部协议,它回应给浏览器一些有用的信息,以帮助正确和精确地显示网页 ...

  5. 如何使用flow进行静态类型检查

    Flow 是 facebook 出品的 JavaScript 静态类型检查⼯具.Vue.js 的源码利⽤了 Flow 做了静态类型检查,所以了解 Flow 有助于我们阅读源码. 为什么⽤ Flow? ...

  6. Erlang学习记录:相关工具和文档

    在线工具和文档 网址 说明 OTP Reference Page Index 内置模块查询 Erlang/OTP Applications N Kernel Reference Manual 入门官方 ...

  7. flutter中的BuildContext

    https://www.jianshu.com/p/509b77b26b78

  8. swoole手册

    https://wiki.swoole.com/wiki/ Swoole Github项目地址:https://github.com/swoole/swoole-src/ (支持请点Star) 开源中 ...

  9. Http学习(三)

    HTTP的问题: 通信使用明文,可能会遭到窃听:HTTP本身不具备加密功能,根据TCP/IP协议工作的线路上可能会遭到窃听,即使通信内容已经加密,也会被看到 通信加密:通过SSL(Secure Soc ...

  10. Cocos2d-x通过Jni实现C++与Java相互调用

    在cocos2dx项目中与运营平台(java sdk)对接时使用了JNI. 通过C++调用Java 在JniUtil.h文件中如下实现: #ifndef _JNIUTIL_H_ #define _JN ...