Python商务办公——使用python库进行Excel读写

写在前面

新的一周,各位辛苦了,那就继续辛苦三天吧!先前系列的文章中,小编和大家初步讲解了一些怎么使用Python中的相关库去绘制各种商务图表,这绝对是我们工作中相当重要的一个环节。但是,在我们平时工作中,除了可视化的需求之外,我们还需要返回一些整理好的Excel表格,因此,善良的小编怎么能忽视各位的这种潜在需求呢,本期文章,小编就和大家探讨一下怎么使用python去操作Excel表格。对于Excel表格的操作主要包括三部分:读入Excel表格、处理Excel表格以及写入Excel表格。这三者中最重要以及最需要时间投入的就是Excel表格数据的分析与处理,这也将是笔者写作的一大主题,后续文章中会逐步进行介绍;而对于Excel表格的读入,在python中也存在着一些相对比较高效与实用的方法,这部分内容小编会在后期通过一篇文章进行专门讲解。排除了不讲的,剩下的自然就是本期文章将要进行介绍的了,本期文章将和大家一起探讨一下如何使用python去写入Excel表格。使用python写入Excel存在多种方法,但是本期文章小编将主要介绍三种方法:使用pandas库、使用xlwt库以及使用xlsxwriter库。所以下文主要分成三部分,分别围绕这三种方法,不过小编会将重点放在第三部分也就是xlsxwriter库的介绍中,在那里小编会给出一个详细的操作示例来对这一库进行一个直观性认识,而对其余两部分的介绍小编会尽量只给出常用操作命令,下面我们正式进入主题。

pandas库与Excel表格写入

pandas库,相信大家都不再陌生了吧,小编已经在多处地方进行了介绍,并且一再告诉大家这个库是进行数据分析的绝对王者,所以在今后的数据处理与分析系列文章中我们将会再一次不断地接触到它。但是尽管pandas库在进行数据分析时相当给力,但是不可否认的是pandas库在对Excel表格文件进行写入操作这一块相对不是很优秀,虽然pandas可以很方便地将数据写入进Excel表格,但是这种写入却是无法进行Excel格式设置的写入,所以在很多时候我们必须对pandas导出的Excel表格进行二次修改,以便使得表格显得美观可读。需要跟随练习的朋友请下载练习文件exercise(可以到小编博客下载)。

小编默认各位都已经在电脑上正确地安装了pandas库,如果还没有进行安装,那你可以参考小编前期的文章进行安装,然后使用pandas库导入刚刚下载的练习文件(请记住一点,pandas库不仅可以写入Excel文件,更加方便的是它能够读取Excel文件,这相对于接下来介绍的另外两个库是极具优势的)。

第一行代码导入了pandas库,第二行代码读取了练习文件exercise.xlsx,第三行我们来看一下这一数据集的大致构成,见下图:

练习数据

数据表共有10列,后三列分别表示1-3月的销售额,而倒数第四列的quota列表示的报价总额。既然小编的目的是导出Excel表格,所以直接的方式就是原数据原路导出,不过小编可不是那种无聊的人,在导出之前进行些许的操作也不枉导入之累了,顺便给大家介绍一个pandas库中的超好用函数。小编打算在原数据表中增加一列汇总列去加总前三个月的销售额,其次小编还想计算一下销售总而占报价总额的比例,为了达到这一目的,小编使用以下代码。

增加两列后数据

当然你如果不习惯使用函数的话,还是可以采用之前小编所讲解的方法,即通过使用下面的命令:

不过小编强烈推荐你使用命令,既然已经完成了数据集的调整,那么接下来就是需要把Excel表格导出,这及时一条命令的事情。

这样便在工作目录下创建了一个名为调整后练习数据的Excel文件,至于在导出命令中加上是因为要禁止pandas将数据的索引好也导出,下面看一下导出后的Excel文件:

调整后练习数据

对此笔者只想说,什麼仇什麼怨,这种格式的数据表如果发给老总,估计你可以直接卷铺盖走人了。所以说pandas库虽然提供了一项极其便利的Excel文件写入操作,但是这种便利是以牺牲美观可读为代价的,这就是下面将要介绍的两个库横空出世的原因。

xlwt库与Excel文件写入

上面介绍了使用pandas库快速读写Excel文件,可以看出使用pandas库可以很方便快速导出Excel文件,但是这种便利伴随着你每天吃鱿鱼的风险(虽然小编最近酷爱烧汁鱿鱼须,但是真的不想被炒呀)。所以有需求就有创造,xlwt库即刻诞生,这个库可以很方便地对Excel文件进行格式化调整,因此可以输出干净整洁美观可读的Excel文件。不过这个库的是服务于office2003及之前的Excel文档的,虽然它也可以出来之后的文档,但是在这方面要稍稍逊色与后面将讲到的xlsxwriter库。所以小编这里不将对其进行详细讲解,只对其最基本的命令进行介绍,对这个库有特殊偏好的朋友可以参看其官方文档。

在使用这个库之前,你必须确保你已经安装了这个库,所以请在命令行中使用以下代码进行xlwt库的安装。

小编的xlwt库版本是1.2.0,所以在上面的命令中自然会输出这个数字序列,你也可以通过这条命令去检查一下自己是否已经正确地安装了xlwt库。现在假设你已经完成了安装,那么下面就开始使用这个库进行Excel文件的写入吧。

这样就在当前目录下创建了一个名为xlwt示例的Excel03文件,可以看一下输出效果:

xlwt操作示例

xlwt格式化示例

可以看出相对于A1单元格中的内容,A2单元格中内容进行了加黑加粗添加下划线以及字体斜体的格式化设置。这相对于pandas库的输出是不是要好看太多了,虽然中间使用的代码可能相对较多,但是你不要忘记代码的存在不是为了解决一个问题,而是为了解决同类型的一系列问题的,所以这点前期的代码写作投入成本几乎是可以忽略不计的。

正如小编在文章开头所讲到的那样,对于使用python进行Excel文件写入,小编最喜欢的一个库就是xlsxwriter了,所以下面小编重点来讲一下xlsxwriter库。

xlsxwriter库与Excel文件写入

“千呼万唤始出来,xlsxwriter闪亮登场”!下面小编开始讲述python中进行Excel表格文件写入操作神器般的操作库xlsxwriter(虽然这里说重点讲解,但是小编也不会对这个库的各种操作细节进行讲解,本期主要是对其最基本的命令进行一下介绍,同时通过一个示例说明它的“变态”,更加详细的介绍小编会在后续文章中使用5-7篇文章进行逐步介绍。)。如果一直阅读小编文章的朋友绝对会对这个库的名字有一个特别深刻的了解,,还需要小编进一步解释吗?所以这个库主要针对的是Excel2007版及之后的版本,而对于Excel03版本等缺少支持,不过我现在在想,大家谁还在使用Excel2003呢。当然你如果一定要告诉我,你偏偏喜欢Excel2003,那么小编只能对你说,xlwt库比较适合你。

xlsxwriter的安装与基本操作

要使用xlsxwriter,你必须确保你先安装了这个库,为了让各位朋友都能成功地安装这个库,小编这里提供四种安装方式,我相信总要一款适合你。

第三种方式是你首先在官网下载xlsxwriter库的压缩包,然后将工作目录改变到所在的文件夹,继而运行以下命令:

第四种方式是通过github进行安装,见下面命令:

所以小编还是建议你不要折腾了,直接使用第一种安装方式进行安装吧,只要你不是上辈子毁了全宇宙,你就基本能够安装成功。既然安装成功了,那就让我们稍微嘚瑟一下来适应一下它的语法命令吧。

xlsxwriter操作示例

第一行代码导入xlsxwriter库;第二行代码创建一个名为xlsxwriter操作示例的工作簿;第三行代码在这个工作簿创建了一个工作表;第四行是在新创建的工作表的A1单元格中输入“Hello xlsxwriter”这个字符串;第五行用来关闭工作簿。这就是xlsxwriter库用来进行Excel表格写入时最基本的几条命令,更多格式化命令以及高级命令小编会在后续文章中进行介绍,诸公不必着急。下面,小编以一个格式化的例子来完成对于xlsxwriter库以及本期文章的讲解。

xlsxwriter操作Excel文件示例

这里小编以文章开头给出的Excel数据集为例来进行演示,考虑到xlsxwriter库无法读入Excel文件(请一定要记住,xlsxwriter是无法读入Excel的),这里使用pandas配合xlsxwriter完成对于数据集的格式化设置。直接上代码:

xlsxwriter格式化示例

相比最先开始直接由pandas库导出的Excel表格,这个表格是不是更加美观与可读了。我想你发送这样的表格给你老板应该不至于被炒鱿鱼吧。更多的设置技巧要在实践中根据自己的创意一步步进行提升,关键是你的思维与创意!讲到这里就暂时完成了xlsxwriter库的初步探讨,更多内容会在后续继续更新。

后记

本文讲到这里就暂告一段落了,本期文章介绍了三种用于操作Excel写入的相关库,通过介绍,小编最终将重点置于pandas+xlsxwriter上。本文只是对这种组合进行了初步探讨,后续会进一步加大对这一主题的讲解。下期文章小编准备接着回到matplotlib库上,讲解这一库的另外一种绘图语法,敬请期待!再次感谢你们的支持与鼓励,你们的陪伴是小编前进的动力!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180515G1XOXH00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券