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安装PIL模块时Unable to find vcvarsall.bat错误的解决方法
Sep 19 Python
详解Python 模拟实现生产者消费者模式的实例
Aug 10 Python
Python实现对百度云的文件上传(实例讲解)
Oct 21 Python
Python3计算三角形的面积代码
Dec 18 Python
python使用TensorFlow进行图像处理的方法
Feb 28 Python
Python使用爬虫抓取美女图片并保存到本地的方法【测试可用】
Aug 30 Python
解决python 无法加载downsample模型的问题
Oct 25 Python
python保存二维数组到txt文件中的方法
Nov 15 Python
pyecharts在数据可视化中的应用详解
Jun 08 Python
Python基于wordcloud及jieba实现中国地图词云图
Jun 09 Python
利用Python实现斐波那契数列的方法实例
Jul 26 Python
Selenium浏览器自动化如何上传文件
Apr 06 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
for循环连续求和、九九乘法表代码
2012/02/20 PHP
解析php中获取url与物理路径的总结
2013/06/21 PHP
解析在PHP中使用mysqli扩展库对mysql的操作
2013/07/03 PHP
深入解析PHP中SESSION反序列化机制
2017/03/01 PHP
YII2框架中actions的作用与使用方法示例
2020/03/13 PHP
初学JavaScript_03(ExtJs Grid的简单使用)
2008/10/02 Javascript
jQuery取得select选择的文本与值的示例
2013/12/09 Javascript
Angularjs编写KindEditor,UEidtor,jQuery指令
2015/01/28 Javascript
JavaScript中的继承方式详解
2015/02/11 Javascript
canvas知识总结
2017/01/25 Javascript
Bootstrap table右键功能实现方法
2017/02/20 Javascript
easyui-datagrid特殊字符不能显示的处理方法
2017/04/12 Javascript
Vuejs中使用markdown服务器端渲染的示例
2017/11/22 Javascript
微信小程序中上传图片并进行压缩的实现代码
2018/08/28 Javascript
vue项目打包之后背景样式丢失的解决方案
2019/01/17 Javascript
详解原生JS动态添加和删除类
2019/03/26 Javascript
详解在React-Native中持久化redux数据
2019/05/22 Javascript
浅析我对JS延迟异步脚本的思考
2020/10/12 Javascript
JavaScript实现点击图片换背景
2020/11/20 Javascript
[02:54]DOTA2英雄基础教程 撼地者
2014/01/14 DOTA
Python使用pickle模块报错EOFError Ran out of input的解决方法
2018/08/16 Python
python退出命令是什么?详解python退出方法
2018/12/10 Python
Python进阶:生成器 懒人版本的迭代器详解
2019/06/29 Python
Python多线程爬取豆瓣影评API接口
2019/10/22 Python
Python 炫技操作之合并字典的七种方法
2020/04/10 Python
美国最大的万圣节服装网站:HalloweenCostumes.com
2017/10/12 全球购物
出纳工作岗位责任制
2014/02/02 职场文书
医学类个人求职信范文
2014/02/05 职场文书
幼儿园家长评语大全
2014/04/16 职场文书
个人校本研修方案
2014/05/26 职场文书
应届毕业生求职信
2014/05/26 职场文书
家庭财产分割协议书范本
2014/11/24 职场文书
体检通知范文
2015/04/21 职场文书
python实现图片批量压缩
2021/04/24 Python
Python基础之变量的相关知识总结
2021/06/23 Python
源码安装apache脚本部署过程详解
2022/09/23 Servers