带你高效工作:利用python实现报表自动化

文源网络,仅供学习之用,如有侵权请联系删除。

如果能够实现报表自动化,那我们将节约不少的时间,更高效的完成工作内容。那么,如何利用python实现报表自动化呢?

本文将介绍xlwt 、xlrd、xlutils的常用功能,xlwt写Excel时公式的应用以及xlwt写入特定目录来手把手带大家实现报表自动化。

Python写Excel

**1、准备工作安装xlwt **

在终端中输入pip install xlwt或者easy_install xlwt引入xlwt包 :

import xlwt # 写

  • 1

  • 1

2、基础教程新建工作簿&增加sheet

新建一个工作簿,然后往里添加sheet

f = xlwt.Workbook()  # 创建工作簿sheet1 = f.add_sheet(u'sheet1', cell_overwrite_ok=True)1212

一个excel表格中可以添加多个sheet 往sheet中写入内容:

sheet.write函数可以传三个参数第i(参数1)第j(参数2)列存入内容(参数3)

sheet1.write(i, j, '第i行第j列存放此内容', style)

  • 1

  • 1

这条语句实现的功能就是往第i行第j列存第三个参数的内容,第四个参数是样式(如字体,背景),可以不传第四个参数。

合并单元格并写入内容:

sheet1.write_merge(x, x + m, y, y + n, '内容', style)11

这条y语句表示将[x:x+m]行[y:y+n]列的矩阵合并成一个单元格。存放第五个参数的#内容,同理,style参数可以不传参 最后使用f.save(‘demo’)就可以把f保存到excel了

3、实战

我们可以先新建一个工作簿,然后往里添加两个sheet,然后查看效果

#coding=utf-8import xlwtf = xlwt.Workbook() # 创建工作簿 sheet1 = f.add_sheet(u'表一', cell_overwrite_ok=True) sheet2 = f.add_sheet(u'表二', cell_overwrite_ok=True) save('xlwt_tutorial')

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

我们开始往sheet中写入内容,不传入style参数先只使用write函数

import xlwtf = xlwt.Workbook()  # 创建工作簿sheet1 = f.add_sheet(u'表一', cell_overwrite_ok=True)sheet2 = f.add_sheet(u'表二', cell_overwrite_ok=True)row = 0temp = [u'姓名',u'年龄',u'学校',u'专业']for pos,v in enumerate(temp):sheet1.write(row,pos,v)row += 1sheet1.write(row,0,u'张三')sheet1.write(row,1,18)sheet1.write(row,2,u'清华大学')row += 1sheet1.write(row,0,u'李四')sheet1.write(row,1,20)sheet1.write(row,2,u'北京大学')f.save('xlwt_tutorial')12345678910111213141516171234567891011121314151617

这样我们就建立了一个3行4列的表格。

(write函数行和列值都是从0开始的) 下面我们使用write_merge函数来合并单元格并写入在f.save之前添加一行代码:

sheet1.write_merge(1,2,3,3,u'汉语言文学')

  • 1

  • 1

将第2-3行第4列合并。

Pythonxd读excel

**1、准备工作安装xlrd **

在终端中输入pip install xlrd或者easy_install xlrd引入xlrd包 :

import xlrd  # 读11

2、基础教程&实战

打开一个Excel,然后输出所有sheet的名字

#coding=utf-8import xlrdimport unioutf = xlrd.open_workbook(r'xlwt_tutorial')print f.sheet_names()输出:[u’表一’, u’表二’]

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

得到表格里的所有的sheet

for i in range(len(f.sheet_names())):sheet1 = workbook.sheet_by_index(i)1212

得到sheet中的内容

#coding=utf-8f = xlrd.open_workbook(r'xlwt_tutorial')sheet1 = f.sheet_by_index(0) #打开第一个sheetsheet2 = f.sheet_by_name(u'表二') #打开名字为小葡萄的sheet#输出sheet的名称,行数,列数print sheet1.name,sheet1.nrows,sheet1.ncolsprint sheet2.name,sheet2.nrows,sheet2.ncols输出为:表一 3 4表二 0 0print sheet1.row_values(1) #获取第二行内容print sheet1.col_values(2) #获取第三列内容输出为:[u’张三’, 18.0, u’清华大学’, u’汉语言文学’][u’学校’, u’清华大学’, u’北京大学’]# 获取单元格内容print sheet1.cell(1,0).value# 获取单元格内容的数据类型print sheet1.cell(1,1).ctype#ctype : 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error输出为:张三2

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

  • 14

  • 15

  • 16

  • 17

  • 18

  • 19

  • 20

  • 21

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

  • 14

  • 15

  • 16

  • 17

  • 18

  • 19

  • 20

  • 21

xlutils常用功能

**1、准备工作安装xlutils **

在终端中输入pip install xlutils或者easy_install xlutils引入xlutils包 :

import xlutils11

2、xlutils中copy功能

我们可能会遇到一个问题,想对一个存储好的Excel进行编辑***。

但是xlrd是只读模式,不能进行编写。

而xlwt是只写模式,不能读入Excel文件进行编辑。我们可以采用xlrd打开一个文档,后采用xlutils中copy功能把文档拷贝*,然后进行编辑即可。

import xlrdfrom xlutils.copy import copyf = xlrd.open_workbook(r'xlwt_tutorial')wb = copy(f) # 将f拷贝到wbsheet1 = wb.get_sheet(0) # 打开sheetprint sheet1.namesheet1.write(3,0,'change')wb.save('xlwt_tutorial')输出为:表一输出的表格已经改变。

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

3、xlwt写Excel时公式的应用我们写用xlwt写一个表格

coding=utf-8import xlwtf = xlwt.Workbook()  # 创建工作簿sheet1 = f.add_sheet(u'得分统计', cell_overwrite_ok=True)mdict = {'monkey':{'writing':80,'reading':60,'speaking':70,'listening':60},'grape':{'writing':100,'reading':80,'speaking':70,'listening':60}}sheet1.write(0,0,u'得分统计')sheet1.write(1,0,u'书法得分')sheet1.write(2,0,u'阅读得分')sheet1.write(3,0,u'演讲得分')sheet1.write(4,0,u'听力得分')temp = ['writing','reading','speaking','listening']for pos,name in enumerate(mdict):sheet1.write(0,pos+1,name)for p,v in enumerate(temp):sheet1.write(p+1,pos+1,mdict[name][v])f.save('得分统计')12345678910111213141516171234567891011121314151617

统计grape的总分和monkey的总分:在f.save之前加入代码:

sheet1.write(5,0,u'总分统计')for i in range(len(mdict)):forstr = chr(65+i+1)+'2+'+chr(65+i+1)+'3+'+chr(65+i+1)+'4+'+chr(65+i+1)+'5'print forstr sheet1.write(5,i+1,xlwt.Formula(forstr)) 输出为:B2+B3+B4+B5C2+C3+C4+C5

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

4、xlwt写入特定目录

由于代码分层的缘故,使代码整体框架优美。我们需要把文件写入到特定目录下。但是由于xlwt中没有直接写入到特定目录的函数。

因此使用shutil.move函数来把文件MOV到特定目录下:

##coding=utf-8import xlwtimport osimport shutilpath = '../sheet/'isExists = os.path.exists(path) # 判断目录是否存在if not isExists:   # 如果目录不存在,新建目录os.makedirs(path)f = xlwt.Workbook()  # 创建工作簿sheet1 = f.add_sheet(u'得分统计', cell_overwrite_ok=True)mdict = {'monkey':{'writing':80,'reading':60,'speaking':70,'listening':60},'grape':{'writing':100,'reading':80,'speaking':70,'listening':60}}sheet1.write(0,0,u'得分统计')sheet1.write(1,0,u'书法得分')sheet1.write(2,0,u'阅读得分')sheet1.write(3,0,u'演讲得分')sheet1.write(4,0,u'听力得分')temp = ['writing','reading','speaking','listening']for pos,name in enumerate(mdict):sheet1.write(0,pos+1,name)for p,v in enumerate(temp):sheet1.write(p+1,pos+1,mdict[name][v])sheet1.write(5,0,u'总分统计')for i in range(len(mdict)):forstr = chr(65+i+1)+'2+'+chr(65+i+1)+'3+'+chr(65+i+1)+'4+'+chr(65+i+1)+'5'print forstrsheet1.write(5,i+1,xlwt.Formula(forstr))f.save('得分统计')shutil.move(u'得分统计', path)12345678910111213141516171819202122232425262728291234567891011121314151617181920212223242526272829

在学习Python的道路上肯定会遇见困难,别慌,我这里有一套学习资料,包含40+本电子书,800+个教学视频,涉及Python基础、爬虫、框架、数据分析、机器学习等,不怕你学不会!
https://shimo.im/docs/JWCghr8prjCVCxxK/ 《Python学习资料》

(0)

相关推荐

  • Python 操作 Excel 学习笔记

    Python 操作 Excel 文章目录 Python 操作 Excel xlrd 安装 创建工作簿并添加工作表 调整单元格样式 填充数据 写入数据 插入图片 保存文件 xlrd 安装 xlrd 常用 ...

  • 史上最全Python 操作 Excel库总结!

    为了带大家了解各个库的异同,从而在不同场景下可以灵活使用,本文将横向比较7个可以操作 Excel 文件的常用模块,在比较各模块常用操作的同时进行巩固学习! 首先让我们来整体把握下不同库的特点 &quo ...

  • 第103天: Python 操作 Excel

    之前看过一篇文章,说一个工作多年的老员工,处理数据时只会用复制粘贴到 Excel ,天天加班工作还完不成,后来公司就招了一个会 Python 的新人,结果分分钟就处理完成.所以工作中大家经常会使用 E ...

  • 【python】解析Excel中使用xlrd库、xlwt库操作,使用xluils库修改Excel文件详解(三)

    之前介绍了读和写excel,前两种都不是修改excel的,但是在实际的工作中,经常会遇到修改已经存在的Excel文件这种需求.xlrd中put_cell可以实现原表格上简单的写入,而xlwt直接生成新 ...

  • 针对不同场景的Python合并多个Excel方法

    大家好,我是辰哥~ 在辰哥看来,技术能够减少繁琐工作带来的枯燥,技术+实际=方便.最近辰哥也是在弄excel文件的时候发现手动去整理有点繁琐枯燥,想着技术可以代替我去处理这部分繁琐的工作那何乐而不为呢 ...

  • 利用Python自动生成Excel数据报表

    所以今天就带大家来实战一波,使用Python自动化生成数据报表! 从一条条的数据中,创建出一张数据报表,得出你想要的东西,提高效率. 主要使用到pandas.xlwings以及matplotlib这几 ...

  • 软件工具,如何带你开启高效工作?

    最近这段特殊的时期,让很多人的工作状态有了一些变化,在线办公的人越来越多. 所以小编分享一些常用工具,希望能提升你的工作效率. Windows软件类 1.天若 OCR 识别 OCR(文字识别软件)工具 ...

  • 数据库课程设计:利用python MySQL pyqt5设计一个带UI界面的书店管理系统

    书店管理系统 1.项目简述 1.1项目来源 1.2 相关工具 2.需求分析 2.1 需求信息 2.2 数据需求 2.3系统流程设计 3.模型设计 3.1 employee表 3.2 book表 3.3 ...

  • 视频剪辑什么鬼?Python 带你高效创作短视频

    第一时间获取 Python 技术干货! 阅读文本大概需要 10 分钟. 近两年,抖音.快手将短视频推到风口浪尖上,要生产出高质量的视频,离不开视频剪辑这一环节:在全民剪片浪潮中,大众使用最多的剪辑软件 ...

  • 利用python tushare pandas进行财报分析

    一.财报分析 大家在购买股票的时候,已经不只是凭感觉去买了,基本上都会对一个股票进行深入的分析. 毕竟购买股票还是一项风险性较高的投资,需要在较为熟悉以后才能去开展,不能蛮干,钱也都不是天上掉下来的. ...

  • 利用Python实现财务分析/经营分析自动化

    之前写公司研究报告时,所有的数据都是通过翻看招股说明书/年报的PDF获取的,把数字从PDF里复制粘贴到EXCEL里再生成图表的过程非常繁琐,而且容易因为看错行/列摘错数据.使用Python可以实现提取 ...

  • 菜鸟记377-EXCEL居然有自带的合并工作簿功能?

    万一您身边的朋友用得着呢? 各位朋友早上好,小菜继续和您分享经验之谈,截止今日小菜已分享400+篇经验之谈,可以文章编号或关键词进行搜索 以下才是今天的正式内容-- 摘要:本文介绍合并工作簿的方法. ...

  • 高效工作有什么小窍门吗?

    得到高研究校友读书会102期第2/3篇文章 编辑 上海0期 大龙 大家好,我是孙佳星来自广州6期,就职于500强外企,一个策展人,比较骄傲的标签是得到大学荣誉学员兼班长. 今天我给大家推荐的书籍是&l ...

  • 高效工作的12个小诀窍

    小管家 阳光铸材 今天 我们经常会遇到效率不高的问题,但其实有了以下12个小诀窍,我们的效率就可以事半功倍. 1.如果有事找办公室里的同事,那就站起来,走过去. 每坐20分钟,就站立8分钟,运动2分钟 ...