大数跨境
0
0

使用Python写入Excel表格

使用Python写入Excel表格 数据皮皮侠
2019-12-22
0
导读:前言实习的时候,大家经常会使用excel去处理数据以及展示,但是对于部分工作我们可以借助程序帮忙实现


    前言

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

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

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的结果:



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我们就会发现:


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中绘制的柱状图:


4

美化

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

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



5

合并表格

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

chart_lin.combine(chart_col)


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

小结

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


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

本期作者:刘懋研

本期编辑校对:秦范

长按,关注数据皮皮侠


【声明】内容源于网络
0
0
数据皮皮侠
社科数据综合服务中心,立志服务百千万社科学者
内容 2137
粉丝 0
数据皮皮侠 社科数据综合服务中心,立志服务百千万社科学者
总阅读615
粉丝0
内容2.1k