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 相关文章推荐
Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
Dec 27 Python
浅析python递归函数和河内塔问题
Apr 18 Python
python如何去除字符串中不想要的字符
Jul 05 Python
使用python画个小猪佩奇的示例代码
Jun 06 Python
Python创建一个空的dataframe,并循环赋值的方法
Nov 08 Python
解决pycharm py文件运行后停止按钮变成了灰色的问题
Nov 29 Python
Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
Dec 26 Python
python虚拟环境迁移方法
Jan 03 Python
Python3.7安装keras和TensorFlow的教程图解
Jun 18 Python
JupyterNotebook 输出窗口的显示效果调整方法
Apr 13 Python
详解Python直接赋值,深拷贝和浅拷贝
Jul 09 Python
python selenium xpath定位操作
Sep 01 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使用gd2绘制基本图形示例(直线、圆、正方形)
2017/02/15 PHP
javascript 冒泡排序 正序和倒序实现代码
2010/12/14 Javascript
JS在textarea光标处插入文本的小例子
2013/03/22 Javascript
javascript实现百度地图鼠标滑动事件显示、隐藏
2015/04/02 Javascript
javascript实现显示和隐藏div方法汇总
2015/08/14 Javascript
AngularJS ng-app 指令实例详解
2016/07/30 Javascript
jquery 动态增加,减少input表单的简单方法(必看)
2016/10/12 Javascript
详解js的延迟对象、跨域、模板引擎、弹出层、AJAX【附实例下载】
2016/12/19 Javascript
Thinkjs3新手入门之如何使用静态资源目录
2017/12/06 Javascript
nodejs遍历文件夹下并操作HTML/CSS/JS/PNG/JPG的方法
2018/11/01 NodeJs
微信小程序实现星星评价效果
2018/11/02 Javascript
vue开发拖拽进度条滑动组件
2019/09/21 Javascript
vue控制多行文字展开收起的实现示例
2019/10/11 Javascript
[02:56]DOTA2矮人直升机 英雄基础教程
2013/11/26 DOTA
[36:14]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第二局
2016/02/28 DOTA
10款最好的Web开发的 Python 框架
2015/03/18 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
2018/01/10 Python
Python高级特性之闭包与装饰器实例详解
2019/11/19 Python
详解Python中的format格式化函数的使用方法
2019/11/20 Python
python3中pip3安装出错,找不到SSL的解决方式
2019/12/12 Python
使用python对excel表格处理的一些小功能
2021/01/25 Python
澳大利亚在线百货商店:Real Smart
2017/08/13 全球购物
印度购物网站:TATA CLiQ
2017/11/23 全球购物
Top Villas美国:豪华别墅出租和度假屋
2018/07/10 全球购物
美国亚马逊旗下时尚女装网店:SHOPBOP(支持中文)
2020/10/17 全球购物
应届生法律求职信
2013/10/22 职场文书
酒店中秋节促销方案
2014/01/30 职场文书
公司节能减排方案
2014/05/16 职场文书
电子信息专业应届生自荐信
2014/06/04 职场文书
篮球兴趣小组活动总结
2014/07/07 职场文书
2014应届本科生自我评价
2014/09/13 职场文书
基层领导干部“四风”问题批评与自我批评
2014/09/23 职场文书
2014年机关后勤工作总结
2014/12/16 职场文书
2015年教研室工作总结范文
2015/05/23 职场文书
2016关于军训的心得体会
2016/01/11 职场文书
Windows Server 版本 20H2 于 8 月 9 日停止支持,Win10 版本 21H1 将于 12 月结束支
2022/07/23 数码科技