[python]操作excel

作者: 夹小欣 | 来源:发表于2017-04-27 08:59 被阅读301次

每次搞考勤都要弄很久很久,一直想着搞一个代码出来,一直拖一直拖一直拖,直到这次忍不了了,结果用的时间都可以搞两次考勤了,而且因为手残还把代码搞没了,重写了一次==

都是泪,所以一定要记下来

python操作excel用到了3个包,读数据(只能读不能写)import xlrd,写数据(只能写入一个新的文件不能读)import xlwt,因为需要读写同一个文件,所以参考了网上的方法,用到了from xlutils.copy import copy,通过只读的方式打开,然后用copy方法操作,这里是原文的链接

小程序还用到了:修改单元格背景色,识别单元格背景色,合并单元格几个操作

0、excel之外,还学了一招,在命令行输出中文:

print(repr(['迟到的夹心饼干']).decode('string-escape'))

1、读写同一个表格的曲线救国方法:

rb = xlrd.open_workbook(filename)  #打开file

table = rb.sheet_by_index(0) # xlrd中的方法

value = table.cell(1,2).value.encode('utf-8') #读取文件内容,有中文时用utf-8编码

wb = copy(rb) # 用到xlutils的copy

#通过get_sheet()获取的sheet有write()方法

ws = wb.get_sheet(0)  #1代表是写到第几个工作表里,从0开始算是第一个。

ws.write(x, y, 'changed!') #写入同一个文件

wb.save(filename) #保存相当于关文件

我试过用xlrd和xlwt同时打开一个文件,结果是悲剧的,write会覆盖源文件的所有,就好像是在源文件上贴了一张白纸==

2、修改单元格背景色:

通过写入时设置样式来改变单元格背景色,很奇特的是excel的颜色是数字表示的,不是RGB,是单纯的数字,也是用的网上的例子,原文在这里

file=xlwt.Workbook() #xlwt新建文件的方法

table=file.add_sheet('sheet name',cell_overwrite_ok=True) #这个True要打开,没试过不打开啥样

for i in range(0,256):

stylei= xlwt.XFStyle()            #初始化样式

patterni= xlwt.Pattern()          #为样式创建图案

patterni.pattern=1                #设置底纹的图案索引,1为实心,2为50%灰色,对                                            应为excel文件单元格格式中填充中的图案样式

patterni.pattern_fore_colour=i    #设置底纹的前景色,对应为excel文件单元格格式                                            中填充中的背景色

#patterni.pattern_back_colour=35  #设置底纹的背景色,对应为excel文件单元格格式                                            中填充中的图案颜色

stylei.pattern=patterni          #为样式设置图案

table.write(i,0,i,stylei)        #使用样式

file.save('colour.xls')

这一小段代码就把颜色和对应的数字给找出来了,赞。

3、识别单元格背景颜色

也是用的网上的例子,网络真是个好东西^_^,原文在这里 。

book = xlrd.open_workbook("colour.xls", formatting_info=1) #这个formatting要打开,不然操作过后之前设置的颜色就全没了,别问我为什么知道

sheet = book.sheet_by_index(0)

xfx = sheet.cell_xf_index(row, col)

xf = book.xf_list[xfx] 

bgx = xf.background.pattern_colour_index # 这一步取出来的bgx就是表示背景颜色的数字

4、合并单元格

这个最简单了

sheet.write_merge(row_begin,row_end,col_begin,col_end,value)

#这个参数是我试出来的==,因为网上的代码没有注释,试完了想起来好像可以去找官方文档读一读。。。

全部代码

相关文章

网友评论

    本文标题:[python]操作excel

    本文链接:https://www.haomeiwen.com/subject/xepwzttx.html