最近搭框架用的openpyxl 2.5.4版本,之前封装的函数有些提示不推荐使用了,我做了一些更新:

代码:

# encoding=utf-8

from openpyxl import load_workbook
from openpyxl.styles import Border, Side, Font
import time

class parseExcel(object):
    def __init__(self, excelPath):
        self.excelPath = excelPath
        self.workbook = load_workbook(excelPath)  # 加载excel
        self.sheet = self.workbook.active  # 获取第一个sheet
        self.font = Font(color=None)
        self.colorDict = {"red": 'FFFF3030', "green": 'FF008B00'}

# 设置当前要操作的sheet对象,使用index来获取相应的sheet
    def get_sheet_by_index(self, sheet_index):
        sheet_name = self.workbook.sheetnames[sheet_index]
        self.sheet = self.get_sheet_by_name(sheet_name)
        return self.sheet

# 获取当前默认sheet的名字
    def get_default_sheet(self):
        return self.sheet.title

# 设置当前要操作的sheet对象,使用sheet名称来获取相应的sheet
    def get_sheet_by_name(self, sheet_name):
        self.sheet = self.workbook[sheet_name]
        return self.sheet

# 获取默认sheet中最大的行数
    def get_max_row_no(self):
        return self.sheet.max_row

# 获取默认 sheet 的最大列数
    def get_max_col_no(self):
        return self.sheet.max_column

# 获取默认sheet的最小(起始)行号
    def get_min_row_no(self):
        return self.sheet.min_row

# 获取默认sheet的最小(起始)列号
    def get_min_col_no(self):
        return self.sheet.min_column

# 获取默认 sheet 的所有行对象,
    def get_all_rows(self):
        return list(self.sheet.iter_rows())
        # return list(self.rows)也可以

# 获取默认sheet中的所有列对象
    def get_all_cols(self):
        return list(self.sheet.iter_cols())
        # return list(self.sheet.columns)也可以

# 从默认sheet中获取某一列,第一列从0开始
    def get_single_col(self, col_no):
        return self.get_all_cols()[col_no]

# 从默认sheet中获取某一行,第一行从0开始
    def get_single_row(self, row_no):
        return self.get_all_rows()[row_no]

# 从默认sheet中,通过行号和列号获取指定的单元格,注意行号和列号从1开始
    def get_cell(self, row_no, col_no):
        return self.sheet.cell(row=row_no, column=col_no)

# 从默认sheet中,通过行号和列号获取指定的单元格中的内容,注意行号和列号从1开始
    def get_cell_content(self, row_no, col_no):
        return self.sheet.cell(row=row_no, column=col_no).value

# 从默认sheet中,通过行号和列号向指定单元格中写入指定内容,注意行号和列号从1开始
    # 调用此方法的时候,excel不要处于打开状态
    def write_cell_content(self, row_no, col_no, content, font=None):
        self.sheet.cell(row=row_no, column=col_no).value = content
        self.workbook.save(self.excelPath)
        return self.sheet.cell(row=row_no, column=col_no).value

# 从默认sheet中,通过行号和列号向指定单元格中写入当前日期,注意行号和列号从1开始
    # 调用此方法的时候,excel不要处于打开状态
    def write_cell_current_time(self, row_no, col_no):
        time1 = time.strftime("%Y-%m-%d %H:%M:%S")
        self.sheet.cell(row=row_no, column=col_no).value = str(time1)
        self.workbook.save(self.excelPath)
        return self.sheet.cell(row=row_no, column=col_no).value

def save_excel_file(self):
        self.workbook.save(self.excelPath)

if __name__ == '__main__':
    p = parseExcel(u'D:\\testdata.xlsx')
    print u"获取默认行:", p.get_default_sheet()

print u"设置sheet索引为1", p.get_sheet_by_index(1)
    print u"获取默认sheet:", p.get_default_sheet()
    print u"设置sheet索引为0", p.get_sheet_by_index(0)
    print u"获取默认sheet:", p.get_default_sheet()
    print u"最大行数:", p.get_max_row_no()
    print u"最大列数:", p.get_max_col_no()
    print u"最小起始行数:", p.get_min_row_no()
    print u"最小起始列数:", p.get_min_col_no()
    print u"所有行对象:", p.get_all_rows()
    print u"所有列对象:", p.get_all_cols()
    print u"获取某一列(2):", p.get_single_col(2)
    print u"获取某一行(4):", p.get_single_row(4)
    print u"取得行号和列号(2,2)单元格:", p.get_cell(2, 2)
    print u"取得行号和列号单元格的内容(2,2)", p.get_cell_content(2, 2)
    print u"行号和列号写入内容(11,11):'xiaxiaoxu'", p.write_cell_content(11, 11, 'xiaxiaoxu')
    print u"行号和列号写入当前日期(13,13):", p.write_cell_current_time(13, 13)

结果:ok

python openpyxl 2.5.4 版本 excel常用操作封装的更多相关文章

  1. java导入导出excel常用操作小结及简单示例

    POI中常用设置EXCEL的操作小结: 操作excel如下 HSSFWorkbook wb = new HSSFWorkbook();  //创建一个webbook,对应一个Excel文件 HSSFS ...

  2. python文件(概念、基本操作、常用操作、文本文件的编码方式)

    文件 目标 文件的概念 文件的基本操作 文件/文件夹的常用操作 文本文件的编码方式 01. 文件的概念 1.1 文件的概念和作用 计算机的 文件,就是存储在某种 长期储存设备 上的一段 数据 长期存储 ...

  3. day02 Python列表的增删查改及常用操作

    列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如: li = [‘alex’,12 ...

  4. .Net Excel操作之NPOI(二)常用操作封装

    一.Excel数据导出常用操作 1.指定表头和描述 2.指定数据库中读出的数据集合 二.ExcelExport封装 /// <summary> /// Excel常用的表格导出逻辑封装 / ...

  5. Python元组类型、字典类型及常用操作

    一.元组类型 1.用途 记录多个值,当多个值没有改的需求,此时用元组更合适,Python的元组与列表类似,不同之处在于元组的元素不能修改. 2.定义方式 在()内用逗号分隔开多个任意类型的值 t=(1 ...

  6. python ui自动化之元素定位和常用操作

    做ui自动化的最基础的就是页面元素定位了,如果连页面元素都定位不到,自动化从何谈起呢?接下来我们就看看页面元素定位的方法吧!(这里就用百度页面来进行演示) 一.最通用的几种定位方式: 1.通过id定位 ...

  7. python大规模数据处理技巧之一:数据常用操作

    面对读取上G的数据,python不能像做简单代码验证那样随意,必须考虑到相应的代码的实现形式将对效率的影响.如下所示,对pandas对象的行计数实现方式不同,运行的效率差别非常大.虽然时间看起来都微不 ...

  8. Python语法速查: 4. 字符串常用操作

    返回目录 (1)字符串常用方法 Python3中,字符串全都用Unicode形式,所以省去了很多以前各种转换与声明的麻烦.字符串属于序列,所有序列可用的方法(比如切片等)都可用于字符串. 注意:字符串 ...

  9. python笔记2-数据类型:字符串常用操作

    这次主要介绍字符串常用操作方法及例子 1.python字符串 在python中声明一个字符串,通常有三种方法:在它的两边加上单引号.双引号或者三引号,如下: name = 'hello' name1 ...

随机推荐

  1. C# 验证XML

    一.验证XML文档 若要验证 XML 文档,需要构造一个 XmlReaderSettings 对象,其中包含用于验证 XML 文档的 XML 架构定义语言 (XSD) 架构.Schema是用于描述和规 ...

  2. PHP直接输出一张图片

    示例代码: public function img(){ $img = "http://static.hc39.com/uploads/309/t11332950.jpg"; $i ...

  3. Scala实现乘法口诀

    object Test4 {  def main(args: Array[String]) {    for (i <- 1 to 9; j <- 1 to 9 if (j <= i ...

  4. APM飞控的使用心得

    硬件资源:APM,F450四轴机架,大疆电调和电机,富斯i6控和接收机. 刚开始的步骤都是大同小异,首先可以按照这个链接上面的步骤一步步的执行:http://tieba.baidu.com/p/297 ...

  5. Maven 搭建 SSM框架——Spring+SpringMVC+Mybatis的搭建教程

    一:概述 SSM框架在项目开发中经常使用到,相比于SSH框架,它在仅几年的开发中运用的更加广泛. Spring作为一个轻量级的框架,有很多的拓展功能,最主要的我们一般项目使用的就是IOC和AOP.Sp ...

  6. Memcached 简单利用和简单了解(Mac的安装和使用)

    Memcached 是一种用于分布式应用的一种缓存机制.应用也比较广泛.这里来学习一下. 首先Memcached 是分布式网站架构都需要用到的缓存机制.缓存就是服务器利用多余的空间上开辟了一个储存空间 ...

  7. LightOJ 1027 - A Dangerous Maze(求期望)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1027 题意:又一个迷宫,有n个门,每个门又一个值num,如果num>0 说明在n ...

  8. CentOS关闭防火墙&SELinux

    须知: 防火墙配置文件:/etc/sysconfig/iptables 查看防火墙状态:service iptables status 关闭防火墙:service iptables stop 关闭ip ...

  9. html+css小总结

    html+css小总结 1.块级元素 <div> <h1> <hr /> <p> <pre> <ol> <ul> & ...

  10. Java - Spring AOP 拦截器的基本实现

    一个程序猿在梦中解决的 Bug 没有人是不做梦的,在所有梦的排行中,白日梦最令人伤感.不知道身为程序猿的大家,有没有睡了一觉,然后在梦中把睡之前代码中怎么也搞不定的 Bug 给解决的经历?反正我是有过 ...