python使用xlrd与xlwt对excel的读写和格式设定


Posted in Python onJanuary 21, 2017

前言

python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库。本文主要介绍了python使用xlrd与xlwt对excel的读写和格式设定,下面话不多说,来看看详细的实现过程。

脚本里先注明# -*- coding:utf-8 -*-   

1.  确认源excel存在并用xlrd读取第一个表单中每行的第一列的数值。

import xlrd, xlwt 
import os 
 
assert os.path.isfile('source_excel.xls'),"There is no timesheet exist. Exit..." 
 
book = xlrd.open_workbook('source_excel.xls') 
sheet=book.sheet_by_index(0) 
 
for rows in range(sheet.nrows): 
 value = sheet.cell(rows,0).value

2. 用xlwt准备将从源表中读出的数据写入新表,并设定行宽和表格的格式。合并单元格2行8列后写入标题,并设定格式为之前定义的tittle_style。

使用的是write_merge。

wbk = xlwt.Workbook(encoding='utf-8') 
sheet_w = wbk.add_sheet('write_after', cell_overwrite_ok=True) 
sheet_w.col(3).width = 5000 
tittle_style = xlwt.easyxf('font: height 300, name SimSun, colour_index red, bold on; align: wrap on, vert centre, horiz center;') 
sheet_w.write_merge(0,2,0,8,u'这是标题',tittle_style)

3. 当函数中要用到全局变量时,注意加global。否则会出现UnboundLocalError:local variable'xxx' referenced before assignment.

check_num = 0 
 
def check_data(sheet): 
 global check_num 
 check_num=check_num+1

4. 写入日期和带格式的数值。原来从sheet中读取的日期格式为2014/4/10,处理后只保留日期并做成数组用逗号分隔后写入新的excel。

date_arr = [] 
date=sheet.cell(row,2).value.rsplit('/')[-1] 
if date not in date_arr: 
  date_arr.append(date) 
sheet_w.write_merge(row2,row2,6,6,date_num, normal_style) 
sheet_w.write_merge(row2,row2,7,7,','.join(date_arr), normal_style)

5. 当从excel中读取的日期格式为xldate时,就需要使用xlrd的xldate_as_tuple来处理为date格式。先判断表格的ctype确实是xldate才能开始操作,否则会报错。之后date格式可以使用strftime来转化为string。如:date.strftime("%Y-%m-%d-%H")

from datetime import date,datetime 
from xlrd import xldate_as_tuple 
 
if (sheet.cell(rows,3).ctype == 3): 
  num=num+1 
  date_value = xldate_as_tuple(sheet.cell_value(rows,3),book.datemode) 
  date_tmp = date(*date_value[:3]).strftime("%d")

6. 最后保存新写的表

wbk.save('new_excel.xls')

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

Python 相关文章推荐
利用python获取某年中每个月的第一天和最后一天
Dec 15 Python
python3.6使用pymysql连接Mysql数据库
May 25 Python
Anaconda 离线安装 python 包的操作方法
Jun 11 Python
python实现二维插值的三维显示
Dec 17 Python
Scrapy框架爬取西刺代理网免费高匿代理的实现代码
Feb 22 Python
django 自定义过滤器的实现
Feb 26 Python
python实现猜拳小游戏
Apr 05 Python
Python3操作MongoDB增册改查等方法详解
Feb 10 Python
Python文字截图识别OCR工具实例解析
Mar 05 Python
python中pow函数用法及功能说明
Dec 04 Python
利用Python过滤相似文本的简单方法示例
Feb 03 Python
两行代码解决Jupyter Notebook中文不能显示的问题
Apr 24 Python
Python第三方库xlrd/xlwt的安装与读写Excel表格
Jan 21 #Python
python实现的多线程端口扫描功能示例
Jan 21 #Python
Python 字符串大小写转换的简单实例
Jan 21 #Python
linux平台使用Python制作BT种子并获取BT种子信息的方法
Jan 20 #Python
python dict 字典 以及 赋值 引用的一些实例(详解)
Jan 20 #Python
Python使用中文正则表达式匹配指定中文字符串的方法示例
Jan 20 #Python
python 查找字符串是否存在实例详解
Jan 20 #Python
You might like
PHP的PDO连接讲解
2019/01/24 PHP
实用javaScript技术-屏蔽类
2006/08/15 Javascript
JavaScript 比较时间大小的代码
2010/04/24 Javascript
判断用户的在线状态 onbeforeunload事件
2011/03/05 Javascript
博客侧边栏模块跟随滚动条滑动固定效果的实现方法(js+jquery等)
2013/03/24 Javascript
javascript显示用户停留时间的简单实例
2013/08/05 Javascript
javascript中数组的冒泡排序使用示例
2013/12/18 Javascript
使用js实现一个可编辑的select下拉列表
2014/02/20 Javascript
js获取select默认选中的Option并不是当前选中值
2014/05/07 Javascript
javascript创建动态表单的方法
2015/07/25 Javascript
深入解析AngularJS框架中$scope的作用与生命周期
2016/03/05 Javascript
jquery购物车结算功能实现方法
2020/10/29 Javascript
jQuery自定义插件详解及实例代码
2016/12/29 Javascript
js控制文本框禁止输入特殊字符详解
2017/04/07 Javascript
jQuery.Form实现Ajax上传文件同时设置headers的方法
2017/06/26 jQuery
JavaScript使用Ajax上传文件的示例代码
2017/08/10 Javascript
jquery插件开发之选项卡制作详解
2017/08/30 jQuery
浅谈webpack 构建性能优化策略小结
2018/06/13 Javascript
koa socket即时通讯的示例代码
2018/09/07 Javascript
jQuery实现上下滚动公告栏详细代码
2018/11/21 jQuery
vue2.0移动端滑动事件vue-touch的实例代码
2018/11/27 Javascript
Nuxt项目支持eslint+pritter+typescript的实现
2019/05/20 Javascript
vue 更改连接后台的api示例
2019/11/11 Javascript
Python中time模块与datetime模块在使用中的不同之处
2015/11/24 Python
Python守护线程用法实例
2017/06/23 Python
Python tkinter三种布局实例详解
2020/01/06 Python
使用IPython或Spyder将省略号表示的内容完整输出
2020/04/20 Python
tensorflow模型文件(ckpt)转pb文件的方法(不知道输出节点名)
2020/04/22 Python
Desigual英国官网:在线购买原创服装
2018/03/09 全球购物
《一件运动衫》教学反思
2014/02/19 职场文书
2014基层党员干部学习全国两会心得体会
2014/03/17 职场文书
竞聘书格式及范文
2014/03/31 职场文书
县委班子四风对照检查材料思想汇报
2014/09/29 职场文书
中标通知书格式
2015/04/17 职场文书
交通事故被告答辩状
2015/05/22 职场文书
2015年高二班主任工作总结
2015/05/25 职场文书