excel学习库

excel表格_excel函数公式大全_execl从入门到精通

「前置知识」xlutils搭桥,xlrd和xlwt轻松实现,Excel文件的读写

前面内容,我们讲解了xlrd和xlwt模块读写Excel文件的一些常规操作。今天,我们来了解下两者如何结合使用。 问题 xlrd和xlwt两个模块,一个负责“读”,一个负责“写”。但两个模块操作的对象并不是一类。如下图:xlrd和xlwt操作Excel的关系用xlrd模块打开一个Excel工作表后,返回一个xlrd.Book对象实例;用xlwt模块创建工作簿时,会返回一个xlwt.Workbook对象实例,两者其实是不同的对象。这样做的好处是:在处理Excel数据时,流程更加清晰。使用xlrd将Excel中的数据,转化为Python相关的数据结构(比如:列表……),并提取出来(xlrd提供了很多方法)。如果xlwt模块需要这些数据,则直接执行相应的写入操作即可(这里难免会用到一些循环遍历)。然而,缺点也是显而易见的,数据量大时,由于“读”、“写”操作的对象并不同,需要折中处理为Python对象,这是一个繁琐的转化过程,很浪费资源。 解决方案 有没有一个无缝的过度方式呢?就是直接将xlrd.Book对象转化为一个xlwt.Workbook对象,将xlrd读取到的Excel文件直接转化为可写的Workbook对象实例,这样,写入后直接保存即可完成整个读写操作。当然,设计者肯定考虑到了这种需求。github中很容易找到这个模块xlutils,它和xlrd、xlwt配套使用。github截图感兴趣的小伙伴可以尝试读下源代码^-^ 【xlutils作用】 xlutils模块相当于在xlrd和xlwt之间搭建了一座桥,最核心的作用是将xlrd的Book对象复制转换为xlwt 的Workbook对象,具体使用时,通常导入模块中的copy子模块中的copy函数来实现(有点绕口)。当然,它还包含了一些其他的方法,感兴趣的小伙伴自己研究下。 【使用过程】 我们来看下如何使用这个模块?完成对象转化这样,问题就简单多了。操作过程不用再将xlrd.Book对象实例转化为Python的原生数据结构(如列表等),实现了无缝对接。为了能很好的理解这个处理流程,举个例子。例子 我们手头有一份1999年-2019年全国各地区人口数据汇总表,显示在一张表格里面,如下图(文末附表格及源代码下载方式)。1999年至2019年各地人口数据需求是 购买专栏解锁剩余63%

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接