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 相关文章推荐
Django在Win7下的安装及创建项目hello word简明教程
Jul 14 Python
Python使用urllib2模块实现断点续传下载的方法
Jun 17 Python
python 调用c语言函数的方法
Sep 29 Python
Python实现PS图像调整黑白效果示例
Jan 25 Python
教你利用Python玩转histogram直方图的五种方法
Jul 30 Python
Python玩转PDF的各种骚操作
May 06 Python
python for和else语句趣谈
Jul 02 Python
python将邻接矩阵输出成图的实现
Nov 21 Python
Python字典fromkeys()方法使用代码实例
Jul 20 Python
让你相见恨晚的十个Python骚操作
Nov 18 Python
利用python调用摄像头的实例分析
Jun 07 Python
python实现简单的三子棋游戏
Apr 28 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生成随机密码类分享
2014/06/25 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
2020/02/21 PHP
PHP如何防止用户重复提交表单
2020/12/09 PHP
PHP7 整型处理机制修改
2021/03/09 PHP
基于jquery实现的服务器验证控件的启用和禁用代码
2010/04/27 Javascript
JQuery中dataGrid设置行的高度示例代码
2014/01/03 Javascript
js 针对html DOM元素操作等经验累积
2014/03/11 Javascript
原生javascript实现拖动元素示例代码
2014/09/01 Javascript
JQuery.get提交页面不跳转的解决方法
2015/01/13 Javascript
javascript实现完美拖拽效果
2015/05/06 Javascript
JavaScipt中栈的实现方法
2016/02/17 Javascript
javascript html5 canvas实现可拖动省份的中国地图
2016/03/11 Javascript
获取input标签的所有属性的方法
2016/06/28 Javascript
利用JS轻松实现获取表单数据
2016/12/06 Javascript
jQuery实现的点击标题文字切换字体效果示例【测试可用】
2018/04/26 jQuery
js 解析 JSON 数据简单示例
2020/04/21 Javascript
Vue实现腾讯云点播视频上传功能的实现代码
2020/08/17 Javascript
vue-cli中实现响应式布局的方法
2021/03/02 Vue.js
[00:32]DOTA2上海特级锦标赛 Ehome战队宣传片
2016/03/03 DOTA
[01:10]DOTA2英雄背景故事第四期之混沌法则混沌骑士
2020/07/16 DOTA
使用python删除nginx缓存文件示例(python文件操作)
2014/03/26 Python
python数据清洗系列之字符串处理详解
2017/02/12 Python
python 表达式和语句及for、while循环练习实例
2017/07/07 Python
利用Python写一个爬妹子的爬虫
2018/06/08 Python
Python爬虫之pandas基本安装与使用方法示例
2018/08/08 Python
关于Python 常用获取元素 Driver 总结
2019/11/24 Python
解决CSS3的opacity属性带来的层叠顺序问题
2016/05/09 HTML / CSS
ZINVO手表官网:男士和女士手表
2019/03/10 全球购物
Ray-Ban雷朋太阳眼镜英国官网:Ray-Ban UK
2019/11/23 全球购物
俄罗斯品牌服装在线商店:VIPAVENUE
2020/08/10 全球购物
初中升旗仪式演讲稿
2014/05/08 职场文书
领导干部遵守党的政治纪律情况思想汇报
2014/09/14 职场文书
工人先锋号事迹材料(2016精选版)
2016/03/01 职场文书
市语委办2016年第十九届“推普周”活动总结
2016/04/05 职场文书
2019年大学生学年自我鉴定!
2019/03/25 职场文书
AndroidStudio图片压缩工具ImgCompressPlugin使用实例
2022/08/05 Java/Android