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 从远程服务器下载东西的代码
Feb 10 Python
Python多进程编程技术实例分析
Sep 16 Python
Python实现遍历windows所有窗口并输出窗口标题的方法
Mar 13 Python
Python输出汉字字库及将文字转换为图片的方法
Jun 04 Python
Python和C/C++交互的几种方法总结
May 11 Python
Python实现加载及解析properties配置文件的方法
Mar 29 Python
机器学习之KNN算法原理及Python实现方法详解
Jul 09 Python
解决python3 HTMLTestRunner测试报告中文乱码的问题
Dec 17 Python
Numpy与Pytorch 矩阵操作方式
Dec 27 Python
python模拟实现分发扑克牌
Apr 22 Python
基于Python爬取51cto博客页面信息过程解析
Aug 25 Python
Python中相见恨晚的技巧
Apr 13 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
函数中使用require_once问题深入探讨 优雅的配置文件定义方法推荐
2014/07/02 PHP
php去除数组中重复数据
2014/11/18 PHP
PHP命名空间namespace用法实例分析
2016/09/27 PHP
PHP开发的微信现金红包功能示例
2017/06/29 PHP
Discuz! 6.1_jQuery兼容问题
2008/09/23 Javascript
AngularJS表单编辑提交功能实例
2015/02/13 Javascript
原生Js实现简易烟花爆炸效果的方法
2015/03/20 Javascript
javascript实现的简单的表单验证
2015/07/10 Javascript
jQuery实现的类似淘宝网站搜索框样式代码分享
2015/08/24 Javascript
jquery分页插件jquery.pagination.js使用方法解析
2016/04/01 Javascript
JavaScript简单实现弹出拖拽窗口(二)
2016/06/17 Javascript
Mvc提交表单的四种方法全程详解
2016/08/10 Javascript
JS简单实现禁止访问某个页面的方法
2016/09/13 Javascript
深入浅析JS中的严格模式
2018/06/04 Javascript
JS实现的简单分页功能示例
2018/08/23 Javascript
30分钟精通React今年最劲爆的新特性——React Hooks
2019/03/11 Javascript
js将日期格式转换为YYYY-MM-DD HH:MM:SS
2020/09/18 Javascript
使用vue编写h5公众号跳转小程序的实现代码
2020/11/27 Vue.js
Python读取环境变量的方法和自定义类分享
2014/11/22 Python
如何在Python中编写并发程序
2016/02/27 Python
Python变量类型知识点总结
2019/02/18 Python
django中ORM模型常用的字段的使用方法
2019/03/05 Python
详解pandas的外部数据导入与常用方法
2019/05/01 Python
在Python中使用filter去除列表中值为假及空字符串的例子
2019/11/18 Python
Python浮点数四舍五入问题的分析与解决方法
2019/11/19 Python
用pushplus+python监控亚马逊到货动态推送微信
2021/01/29 Python
Html5 localStorage入门教程
2018/04/26 HTML / CSS
FOREO官方网站:LUNA露娜洁面仪
2016/11/28 全球购物
德国咖啡批发商:Coffeefair
2019/08/26 全球购物
MYSQL支持事务吗
2013/08/09 面试题
物业电工岗位职责
2013/11/20 职场文书
总裁秘书岗位职责
2013/12/04 职场文书
正风肃纪剖析材料
2014/02/18 职场文书
我爱我的祖国演讲稿
2014/05/04 职场文书
2015年安全生产工作总结范文
2015/04/02 职场文书
PyTorch device与cuda.device用法
2022/04/03 Python