pandas 读表格_使用Python写入Excel表格

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-24 06:02   56   0
564e8a8458a450707bb9dad66412d638.png

前言

实习的时候,大家经常会使用excel去处理数据以及展示,但是对于部分工作我们可以借助程序帮忙实现,达到高效解决问题的效果,比如将接口返回的json解析并保存结果到excel中,按一定规律处理excel中的数据然后写入到新的excel文件中,汇总来自多个文件的内容到一个excel中等等。

以往我们通常直接通过pandas直接导入Excel,但是pandas只能读取Excel之中的数据,却无法进行数据写入,那么如何通过Python进行数据读写呢?下面就为大家介绍几种除pandas以外读写Excel的工具。

73b3a119f559be34fa37cb7df6e8c97f.png

1

xlsxwriter

对比而言,XlsxWriter可以创建和写Excel 2007+ XLSX文件,但是只能写不能读;xlrd、xlwt、xlutils三大模块分别提供读、写和其他功能,但是对于较大文件处理速度较慢;OpenPyXL可以读、写Excel 2007+ /xlsm/xltx/xltm文件,综合来讲功能较多,但网上有人说有很大的缺陷;Microsoft Excel API可以直接通过COM组件与Microsoft Excel进程通信调用各种功能实现对excel文件操作,但是因为需要与Excel进程通信,速度慢到怀疑人生。

综合考虑上述几个模块的优缺点,就是因为想偷懒,故我们本次着重介绍xlsxwriter模块的使用。

xlsxwriter模块主要用来生成excel表格,插入数据、插入图标等表格操作。

import xlsxwriter   #导入模块workbook = xlsxwriter.Workbook('作业写不完了.xlsx')     #新建excel表worksheet = workbook.add_worksheet('sheet1')       #新建sheet(sheet的名称为"sheet1")headings = ['Date','A','B']     #设置表头data = [['2019-12-17','2019-12-18','2019-12-19','2019-12-20','2019-12-21','2019-12-22'],    [1,2,3,4,5,6],    [7,8,9,10,11,12],]                                                             worksheet.write_row('A1',headings)worksheet.write_column('A2',data[0])worksheet.write_column('B2',data[1])worksheet.write_column('C2',data[2])                   #将数据插入到表格中workbook.close()          #将excel文件保存关闭,如果没有这一行运行代码会报错

随后我们可以查看生成excel的结果:

199f82dae342415b09f0e65b07fefda9.png

2

在excel中插入折线图

此外,我们还可以在excel中插入折线图:

chart_lin = workbook.add_chart({'type':'line'})      #新建图表格式 line为折线图chart_lin.add_series(                               #给图表设置格式,填充内容     {         'name':'=sheet1!$B$1',         'categories':'=sheet1!$A$2:$A$7',         'values':   '=sheet1!$B$2:$B$7',         'line': {'color': 'red'},     })chart_lin.set_title({'name':'太南了'})chart_lin.set_x_axis({'name':"x轴"})chart_lin.set_y_axis({'name':'y轴'})          #设置图表表头及坐标轴chart_lin.set_style(1)worksheet.insert_chart('A10',chart_lin,{'x_offset':25,'y_offset':10})   #放置图表位置workbook.close()

再打开excel我们就会发现:

242dae4be091d56b363e8a4b3b58eee2.png

3

在excel中绘制柱状图

除了折线图以外,XlsxWriter还可以回执其他类型图表:

chart_col = workbook.add_chart({'type':'column'})     #柱状图chart_col.add_series(                                  {         'name':'=sheet1!$B$1',         'categories':'=sheet1!$A$2:$A$7',         'values':   '=sheet1!$C$2:$C$7',         'line': {'color': 'red'},     })chart_col.set_title({'name':'难了'})chart_col.set_x_axis({'name':"x轴"})chart_col.set_y_axis({'name':'y轴'})        chart_col.set_style(1)worksheet.insert_chart('A30',chart_col,{'x_offset':25,'y_offset':10})

在excel中绘制的柱状图:

dd11f14837f4fb86486d8753a606cd21.png

4

美化

此外,XlsxWriter还可以对图表的字体及颜色等进行设置,使表格更为美观:

workfomat = workbook.add_format({ 'bold':  True,                 #字体加粗    'border':1,                    #单元格边框宽度    'align':    'center',          #对齐方式    'fg_color': '#F4B084',         #单元格背景颜色})

5

合并表格

此外,XlsxWriter还可以合并多张表格:

chart_lin.combine(chart_col)

关闭表格后,可发现Excel变成这样:

5f4172ede0ea417a172e2200f5d86bd8.png

小结

通过XlsxWriter可以直接通过python在excel中直接写入数据,免去了在处理数据时需要频繁切换软件之苦,通常情况下可以使用XlsxWriter配合pandas使用,大大缩减了处理数据所需的时间。

参考: https://xlsxwriter.readthedocs.io/chart.html

本期作者:刘懋研

本期编辑校对:秦范

长按,关注数据皮皮侠

b58d6b0dc462fbed8e68a2afbbd24107.png
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP