1. 简单封装了下openpyxl,仅供参考,openpyxl版本2.6.2
    #操作存在的文件
    from openpyxl import Workbook
    from openpyxl import load_workbook
    from openpyxl.styles import colors
    from openpyxl.styles import Font
  2.  
  3. 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
  4.  
  5. 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")
  6.  

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. JS事件 什么是事件?JavaScript 创建动态页面。事件是可以被 JavaScript 侦测到的行为。 网页中的每个元素都可以产生某些可以触发 JavaScript 函数或程序的事件。

    什么是事件 JavaScript 创建动态页面.事件是可以被 JavaScript 侦测到的行为. 网页中的每个元素都可以产生某些可以触发 JavaScript 函数或程序的事件. 比如说,当用户单击 ...

  2. redis通过命令传参以及主从复制

    config set appendonly  yes  临时生效 如果想永久生效的话,执行 config rewrite 并不是所有的都支持修改 config set bind ip  修改bind参 ...

  3. 利用 Dockerfile 定制镜像

    镜像的定制实际上就是定制每一层所添加的配置.文件. 如果我们可以把每一层修改.安装.构建.操作的命令都写入一个脚本,用这个脚本来构建.定制镜像, 那么之前提及的无法重复的问题.镜像构建透明性的问题.体 ...

  4. cordova 插件发布到 npm

    cordova 插件发布到 npm Cordova插件开发(3)- 将Cordova插件发布到npm could not find an installed version of gradle eit ...

  5. 关于SecureCRT不能显示输入、换行不正常

    网上绿色破解版的SecureCRT会碰到这种问题,即输入字符不显示在终端.换行后下一行的行首有很大一段退格: 如上,输入的指令不显示:回车后下一行的起始位置不对. 碰到这种问题,在波特率.奇偶校验.停 ...

  6. Windows taskkill

    TASKKILL [/S system [/U username [/P [password]]]]         { [/FI filter] [/PID processid | /IM imag ...

  7. pycharm中使用配置好的virtualenv环境,自动生成和安装requirements.txt依赖

    1.手动建立: 第一步 建立虚拟环境 Windows cmd: pip install virtualenv 创建虚拟环境目录 env 激活虚拟环境 C:\Python27\Scripts\env\S ...

  8. 总结加密、机密jar中的class

    1.加密和解密部署到jboss中间件中的的单个class文件,原理:使用“java源程序加密解决方案(基于Classloader解密) (2014-07-13 11:31)”blog即可实现: imp ...

  9. VS2010-MFC(MFC常用类:定时器Timer)

    转自:http://www.jizhuomi.com/software/232.html 前面一节讲了CTime类和CTimeSpan类的使用,本节继续讲与时间有关的定时器.定时器并不是一个类,主要考 ...

  10. hive 总结四(优化)

    本文参考:黑泽君相关博客 本文是我总结日常工作中遇到的坑,结合黑泽君相关博客,选取.补充了部分内容. 表的优化 小表join大表.大表join小表 将key相对分散,并且数据量小的表放在join的左边 ...