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引用DLL文件的方法
May 11 Python
Flask框架的学习指南之开发环境搭建
Nov 20 Python
Python线程创建和终止实例代码
Jan 20 Python
python儿童学游戏编程知识点总结
Jun 03 Python
使用Python制作一个打字训练小工具
Oct 01 Python
python实现的汉诺塔算法示例
Oct 23 Python
Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法实例分析
Dec 26 Python
通过 Python 和 OpenCV 实现目标数量监控
Jan 05 Python
Django调用支付宝接口代码实例详解
Apr 04 Python
Django实现文章详情页面跳转代码实例
Sep 16 Python
JupyterNotebook 输出窗口的显示效果调整实现
Sep 22 Python
Pyqt助手安装PyQt5帮助文档过程图解
Nov 20 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
法压式咖啡之制作法
2021/03/03 冲泡冲煮
生成php程序的php代码
2008/04/07 PHP
php实现Mongodb自定义方式生成自增ID的方法
2015/03/23 PHP
phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
2016/03/30 PHP
PHP调用存储过程返回值不一致问题的解决方法分析
2016/04/26 PHP
php+ajax登录跳转登录实现思路
2016/07/31 PHP
PHP大文件及断点续传下载实现代码
2020/08/18 PHP
THINKPHP-Apache服务器中使用Alias虚拟目录URL重写 隐藏index.php
2021/03/09 PHP
jQuery学习3:操作元素属性和特性
2010/02/07 Javascript
javascript dom代码应用 简单的相册[firefox only]
2010/06/12 Javascript
基于JQuery实现相同内容合并单元格的代码
2011/01/12 Javascript
jQuery数组处理代码详解(含实例演示)
2012/02/03 Javascript
Javascript中的五种数据类型详解
2014/12/26 Javascript
jQuery中:text选择器用法实例
2015/01/03 Javascript
JS实现随页面滚动显示/隐藏窗口固定位置元素
2016/02/26 Javascript
简介BootStrap model弹出框的使用
2016/04/27 Javascript
jquery mobile界面数据刷新的实现方法
2016/05/28 Javascript
bootstrap table小案例
2016/10/21 Javascript
JS 实现导航菜单中的二级下拉菜单的几种方式
2016/10/31 Javascript
Bootstrap警告框(Alert)插件使用方法
2017/03/21 Javascript
Node.js静态服务器的实现方法
2018/02/28 Javascript
微信小程序实现搜索框功能及踩过的坑
2020/06/19 Javascript
[01:30:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster BO3 第二场 2月2日
2021/03/11 DOTA
python3生成随机数实例
2014/10/20 Python
selenium设置proxy、headers的方法(phantomjs、Chrome、Firefox)
2018/11/29 Python
python3下载抖音视频的完整代码
2019/06/05 Python
使用pyecharts生成Echarts网页的实例
2019/08/12 Python
tensorflow 环境变量设置方式
2020/02/06 Python
德国综合购物网站:OTTO
2018/11/13 全球购物
如何反序的迭代一个序列?how do I iterate over a sequence in reverse order
2012/02/04 面试题
大学生军训广播稿
2014/01/24 职场文书
报表员工作失误检讨书范文
2014/09/19 职场文书
党员个人剖析材料2014
2014/10/08 职场文书
六一领导慰问欢迎词
2015/01/26 职场文书
jquery插件实现代码雨特效
2021/04/24 jQuery
python Django框架快速入门教程(后台管理)
2021/07/21 Python