打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
带你高效工作:利用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学习资料》

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【整理】Python中,添加写入数据到已经存在的Excel的xls文件,即打开excel文...
python 3 操作 excel
Python 进阶(六): Excel 基本操作
python创建excel文件,并进行读与存操作
使用python操作Excel——xlrd、xlwt、xlutils库
4段简短代码教你用Python读写Excel
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服