#三微授渔#就是这么简单粗暴又好用,三微丨Python读写Excel表格
最近在做一些数据处理和计算的工作 , 因为数据是以.csv格式保存的 , 因此刚开始直接用Excel来处理 。 但是做着做着发现重复的劳动其实并没有多大的意义 , 于是就想着写个小工具帮着处理 。 以前正好在一本书上看到过使用Python来处理Excel表格 , 可惜没有仔细看 。 于是我到处查找资料 , 基本解决了日常所需 , 终于算是完成了任务 , 因此撰写此文就算是总结吧 , 主要记录使用过程的常见问题及解决 。
python操作excel主要用到xlrd和xlwt这两个库 , 即xlrd是读excel , xlwt是写excel的库 。 可从这里下载https://pypi.python.org/pypi 。 下面分别记录python读和写excel 。
Python写excel——xlwt
Python写excel的难点不在构造一个workbook的本身 , 而是填充的数据 , 不过这不在范围内 。 在写excel的操作中也有棘手的问题 , 比如写入合并的单元格就是比较麻烦的 , 另外写入还有不同的样式 。
详细代码如下:
importxlwt
#设置表格样式
defset_style(name,height,bold=False):
style=xlwt.XFStyle()
font=xlwt.Font()
font.name=name
font.bold=bold
font.color_index=4
font.height=height
style.font=font
returnstyle
#写Excel
defwrite_excel():
f=xlwt.Workbook()
sheet1=f.add_sheet('学生',cell_overwrite_ok=True)
row0=[''姓名'',''年龄'',''出生日期'',''爱好'']
colum0=[''张三'',''李四'',''恋习Python'',''小明'',''小红'',''无名'']
#写第一行
foriinrange(0,len(row0)):
sheet1.write(0,i,row0[i],set_style('TimesNewRoman',220,True))
#写第一列
foriinrange(0,len(colum0)):
sheet1.write(i+1,0,colum0[i],set_style('TimesNewRoman',220,True))
sheet1.write(1,3,'2006/12/12')
sheet1.write_merge(6,6,1,3,'未知')#合并行单元格
sheet1.write_merge(1,2,3,3,'打游戏')#合并列单元格
sheet1.write_merge(4,5,3,3,'打篮球')
f.save('test.xls')
if__name__=='__main__':
write_excel()
结果图:
文章图片

文章图片
在此 , 对write_merge()的用法稍作解释 , 如上述:sheet1.write_merge(1,2,3,3,'打游戏') , 即在四列合并第2,3列 , 合并后的单元格内容为''合计'' , 并设置了style 。 其中 , 里面所有的参数都是以0开始计算的 。
Python读excel——xlrd
Python读取Excel表格 , 相比xlwt来说 , xlrd提供的接口比较多 , 但过程也有几个比较麻烦的问题 , 比如读取日期、读合并单元格内容 。
下面先看看基本的操作:

文章图片
整体思路为 , 打开文件 , 选定表格 , 读取行列内容 , 读取表格内数据
详细代码如下:

文章图片
运行结果如下:

文章图片
那么问题来了 , 上面的运行结果中红框框中的字段明明是出生日期 , 可显示的确实浮点数;同时合并单元格里面应该是有内容的 , 结果不能为空 。
别急 , 我们来一一解决这两个问题:
1.python读取excel中单元格内容为日期的方式
python读取excel中单元格的内容返回的有5种类型 , 即上面例子中的ctype:
ctype:0empty , 1string , 2number , 3date , 4boolean , 5error
即date的ctype=3 , 这时需要使用xlrd的xldate_as_tuple来处理为date格式 , 先判断表格的ctype=3时xldate才能开始操作 。
推荐阅读
- 糗事百科| 10大动图,可能这就是爱情的模样
- 金宝宝说汽车野的就是好看
- 热门新鲜事这就是丰巢收费的理由,两头亏损?5年亏了20亿想让客户承担
- 快科技这就是丰巢收费的理由:扛不住了,4年亏了20亿
- 每日体育播报网曝4位导师名单,个个都是顶流,《这就是街舞3》官宣
- 粤知一二问就是发红包!,男生怎么过母亲节?别问
- 趣头条我的街拍神器】适合我的就是最好的,提车帝豪GS,【帝豪GS
- 夕阳下的彩虹其实就是一群“流浪汉”!,工程这个行业都称呼的“总”,
- 就是刘欧尼事关1.1亿中国人饭碗,你也在其中!,90%老人竟然还不知道的喜讯
- 娱乐中的趣闻绝处逢生靠的就是它们,阴阳师斗技中运气式神
