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单例模式实例分析
Apr 08 Python
初步理解Python进程的信号通讯
Apr 09 Python
Eclipse中Python开发环境搭建简单教程
Mar 23 Python
python实现多线程抓取知乎用户
Dec 12 Python
利用python库在局域网内传输文件的方法
Jun 04 Python
3分钟学会一个Python小技巧
Nov 23 Python
Python图像处理实现两幅图像合成一幅图像的方法【测试可用】
Jan 04 Python
django admin组件使用方法详解
Jul 19 Python
基于YUV 数据格式详解及python实现方式
Dec 09 Python
python实现人像动漫化的示例代码
May 17 Python
Python自动巡检H3C交换机实现过程解析
Aug 14 Python
python之django路由和视图案例教程
Jul 26 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中几种常见的超时处理全面总结
2012/09/11 PHP
PHP面向对象——访问修饰符介绍
2012/11/08 PHP
PHP版微信第三方实现一键登录及获取用户信息的方法
2016/10/14 PHP
PHP的mysqli_ssl_set()函数讲解
2019/01/23 PHP
基于jquery实现简单的手风琴特效
2015/11/24 Javascript
Node.js操作mysql数据库增删改查
2016/03/30 Javascript
原生JS实现-星级评分系统的简单实例
2016/08/21 Javascript
js发送短信倒计时的简单实现方法
2016/09/08 Javascript
jQuery弹出遮罩层效果完整示例
2016/09/13 Javascript
浅谈js内置对象Math的属性和方法(推荐)
2016/09/19 Javascript
利用JS制作万年历的方法
2017/08/16 Javascript
JavaScript面向对象精要(下部)
2017/09/12 Javascript
vue.js中created方法作用
2018/03/30 Javascript
vue项目中vue-i18n和element-ui国际化开发实现过程
2018/04/25 Javascript
实例分析编写vue组件方法
2019/02/12 Javascript
vue 重塑数组之修改数组指定index的值操作
2020/08/09 Javascript
详解Python的Lambda函数与排序
2016/10/25 Python
Python实现采用进度条实时显示处理进度的方法
2017/12/19 Python
Python numpy 提取矩阵的某一行或某一列的实例
2018/04/03 Python
python实现字符串中字符分类及个数统计
2018/09/28 Python
对Python 3.5拼接列表的新语法详解
2018/11/08 Python
分析运行中的 Python 进程详细解析
2019/06/22 Python
python 字典有序并写入json文件过程解析
2019/09/30 Python
python调用Matplotlib绘制分布点图
2019/10/18 Python
关于numpy中eye和identity的区别详解
2019/11/29 Python
浅谈three.js中的needsUpdate的应用
2012/11/12 HTML / CSS
奥斯汀独木舟和皮划艇:Austin Canoe & Kayak
2018/05/22 全球购物
波兰最大的度假胜地和城市公寓租赁运营商:Sun & Snow
2018/10/18 全球购物
JAVA高级程序员面试题
2013/09/06 面试题
韩国商务邀请函
2014/01/14 职场文书
优秀志愿者事迹材料
2014/02/03 职场文书
个人授权委托书样本
2014/09/13 职场文书
考试作弊被抓检讨书
2014/10/02 职场文书
党委书记群众路线对照检查材料思想汇报
2014/10/04 职场文书
市贸粮局召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
二手车转让协议书
2015/01/29 职场文书