python 封装openpyxl实现excel读写功能

说到python读写excel,想到的的就是xlrd、xlwt、openpyxl、pandas这几个库吧,最近用到读写excel,于是初略看了下这几个库的使用,xlrd用于读取excel的,xlwt用于写excel的,但不能写后辍为.xlsx的文件,openpyxl既能读也能写,感觉是前面两个的结合以及结合,用法也基本雷同,pandas功能比较强大,能读能写,还能各种数据分析,在excel表格中能操作的,几乎在pandas中都能做到。xlrd读取数据时,可以直接到表格的一行转成一个列表,比较方便,openpyxl读来每行是以cell为元素的列表,还要再转换一次(或许我还不知道怎么直接转成列表的),所以写用了xlrd。由于xlwt不能写.xlsx的文件,于用写用openpyxl,pandas跃然功能强大,但对我来说感觉pandas还是比较复杂,不好操作,前两个已满足我现在的读写的功能需求。不管是xlrd还是openpyxl,读写的流程基本是一样的,写初始化一个workbook,再获取一个sheet,然后读或者写数据,如果写,还要设置表格的样式,最后workbook.save()下。每次都这样嫌麻烦,于是想写两个方法封装下。

def readExcel(path, sheetName=None):

第一个读的方法,接受一个已存在的Excel路径,还有一个可选参数sheetName,如果不指定,默认读第一个表格,返回一个两层的列表[ [], [] ,....],第二层的列表每一个表示一行的数据,得到每行的数据后,想怎么操作就看自己的了。

def writeExcel(path, data, title=None, row_height=18, merge_row_col=[]):

第二个写的方法

path:写入excel的文件路径,不存在新建,存在的话就覆盖

data:写入excel的数据,格式为[[], [],...]或([], [],...)或[(), (),...]或((),( ),...),第二层每个元素表示一行数据,可以长度不一致,表格的列数以最长的那个元素为准,值为None或者长度达不到最达长度的,写入excel时为空

title:表格名称,就是我们excel中的sheet1,sheet2,类型为字符串

row_height:设置表格行高,默认为18,

merge_row_col:合并单元格的起止位置组合,格式为({},{},...)或[{},{},...],其中元素{}的key-value如下:

{
    "start_row": 2,
    "start_column": 4,
    "end_row": 3,
    "end_column": 4
}

然后这个方法把样式写死了,有需求自己改下,把样式的值放方法参数中࿰

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值