Python简单读写Xls格式文档的方法示例


Posted in Python onAugust 17, 2018

本文实例讲述了Python简单读写Xls格式文档的方法。分享给大家供大家参考,具体如下:

1. 模块安装

使用pip install命令安装,
即:

pip install xlrd
pip install xlwt

如下图:

Python简单读写Xls格式文档的方法示例

Python简单读写Xls格式文档的方法示例

2. python 代码

import xlrd
import xlwt
import datetime 
def set_style(name,height,format,bold=False):
  style = xlwt.XFStyle()
  if format.strip()!='':
    style.num_format_str =format
  font = xlwt.Font()
  font.name=name
  font.bold=bold
  font.color_index=4
  font.height=height
  alignment = xlwt.Alignment()
  #HORZ_GENERAL, HORZ_LEFT, HORZ_CENTER, HORZ_RIGHT, HORZ_FILLED, HORZ_JUSTIFIED, HORZ_CENTER_ACROSS_SEL, HORZ_DISTRIBUTED
  alignment.horz = xlwt.Alignment.HORZ_CENTER
  #VERT_TOP, VERT_CENTER, VERT_BOTTOM, VERT_JUSTIFIED, VERT_DISTRIBUTED
  alignment.vert = xlwt.Alignment.VERT_CENTER
  style.alignment = alignment
  style.font=font
  return style
def set_colstyle(sheet,cindex):
  col=sheet.col(cindex)
  col.width =256*20
  #col.height =100
def writeXls(path):
  wb = xlwt.Workbook()
  sheet = wb.add_sheet('测试',cell_overwrite_ok=True)
  set_colstyle(sheet,3)
  #标题
  heads=['姓名','学科','分数','日期']
  for h in range(0,len(heads)):
    sheet.write(0,h,heads[h],set_style('Arial',300,'',True))
  #数据
  sheet.write_merge(1,2,0,0,'张三',set_style('Arial',300,'',False))
  sheet.write(1,1,'语文',set_style('Arial',240,'',False))
  sheet.write(1,2,85,set_style('Arial',240,'',False))
  sheet.write(1,3,datetime.date.today(),set_style('Arial',240,'yyyy/mm/dd',False))
  sheet.write(2,1,'数学',set_style('Arial',240,'',False))
  sheet.write(2,2,85,set_style('Arial',240,'',False))
  sheet.write(2,3,datetime.date.today(),set_style('Arial',240,'yyyy/mm/dd',False))
  sheet.write_merge(3,4,0,0,'李四',set_style('Arial',300,'',False))
  sheet.write(3,1,'语文',set_style('Arial',240,'',False))
  sheet.write(3,2,95,set_style('Arial',240,'',False))
  sheet.write(3,3,datetime.date.today(),set_style('Arial',240,'yyyy/mm/dd',False))
  sheet.write(4,1,'数学',set_style('Arial',240,'',False))
  sheet.write(4,2,95,set_style('Arial',240,'',False))
  sheet.write(4,3,datetime.date.today(),set_style('Arial',240,'yyyy/mm/dd',False))
  wb.save(path)
def ismerge(sheet,merge,r,c):
  #merge=sheet.merged_cells
  for m in merge:
    if r>=m[0] and r<m[1] and c==m[2]:
      r=m[0]
      c==m[2]
      break
  return r,c
def readXls(path):
  wb=xlrd.open_workbook(path,formatting_info=True)
  #sheetname=wb.sheet_names()[0]
  sheet=wb.sheet_by_index(0)
  rows=sheet.nrows
  cols=sheet.ncols
  merge=sheet.merged_cells
  #merged_cells返回的这四个参数的含义是:(row,row_range,col,col_range),
  #其中[row,row_range)包括row,不包括row_range
  print('--------------------------------------------------------------------')
  for r in range(0,rows):
    listStr = []
    for c in range(0,cols):
      merg=ismerge(sheet,merge,r,c)
      if (sheet.cell(merg[0],merg[1]).ctype==3):
        data_value=xlrd.xldate_as_tuple(sheet.cell_value(merg[0],merg[1]),wb.datemode)
        #print(datetime.date(*data_value[:3]).strftime('%Y/%m/%d'))
        listStr.append(datetime.date(*data_value[:3]).strftime('%Y/%m/%d'))
      else:
        #print(sheet.cell_value(merg[0],merg[1]))
        listStr.append(sheet.cell_value(merg[0],merg[1]))
      #print(sheet.cell(merg[0],merg[1]).value)
      #print(sheet.cell(r,c).ctype)
    print(' |\t'.join(str(s) for s in listStr if s not in [None]))
    print('--------------------------------------------------------------------')
if __name__ == '__main__':
  #writeXls('H:\测试.xls')
  readXls('H:\测试.xls')

3.效果展示

Python简单读写Xls格式文档的方法示例

Python简单读写Xls格式文档的方法示例

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python中获取对象信息的方法
Apr 27 Python
分享几道你可能遇到的python面试题
Jul 24 Python
python 通过类中一个方法获取另一个方法变量的实例
Jan 22 Python
如何实现Django Rest framework版本控制
Jul 25 Python
python 两个数据库postgresql对比
Oct 21 Python
如何利用pygame实现简单的五子棋游戏
Dec 29 Python
jupyter notebook 增加kernel教程
Apr 10 Python
Django bulk_create()、update()与数据库事务的效率对比分析
May 15 Python
浅谈Selenium 控制浏览器的常用方法
Dec 04 Python
python函数指定默认值的实例讲解
Mar 29 Python
python3实现无权最短路径的方法
May 12 Python
详解解Django 多对多表关系的三种创建方式
Aug 23 Python
Python实现的连接mssql数据库操作示例
Aug 17 #Python
Python SQL查询并生成json文件操作示例
Aug 17 #Python
python3 flask实现文件上传功能
Mar 20 #Python
Python爬取qq空间说说的实例代码
Aug 17 #Python
django进阶之cookie和session的使用示例
Aug 17 #Python
Django 登陆验证码和中间件的实现
Aug 17 #Python
python读取Excel实例详解
Aug 17 #Python
You might like
php判断终端是手机还是电脑访问网站的思路及代码
2013/04/24 PHP
php中rename函数用法分析
2014/11/15 PHP
PHP基于新浪IP库获取IP详细地址的方法
2017/05/04 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
php中的依赖注入实例详解
2019/08/14 PHP
RR vs IO BO3 第二场2.13
2021/03/10 DOTA
分享20多个很棒的jQuery 文件上传插件或教程
2011/09/04 Javascript
解析offsetHeight,clientHeight,scrollHeight之间的区别
2013/11/20 Javascript
单击某一段文字改写文本颜色
2014/06/06 Javascript
javascript实现简易计算器
2017/02/01 Javascript
浅谈键盘上回车按钮的js触发事件
2017/02/13 Javascript
基于JavaScript实现的插入排序算法分析
2017/04/14 Javascript
angular ng-click防止重复提交实例
2017/06/16 Javascript
用Webpack构建Vue项目的实践
2017/11/07 Javascript
vue-router实现组件间的跳转(参数传递)
2017/11/07 Javascript
JavaScript原型链与继承操作实例总结
2018/08/24 Javascript
小程序分页实践之编写可复用分页组件
2019/07/18 Javascript
vue 更改连接后台的api示例
2019/11/11 Javascript
在vue中实现给每个页面顶部设置title
2020/07/29 Javascript
Python collections模块实例讲解
2014/04/07 Python
Python使用django搭建web开发环境
2017/06/09 Python
django多个APP的urls设置方法(views重复问题解决)
2019/07/19 Python
使用Python将字符串转换为格式化的日期时间字符串
2019/09/01 Python
Python文件操作函数用法实例详解
2019/12/24 Python
详解CSS3的opacity属性设置透明效果的用法
2016/05/09 HTML / CSS
美国知名奢侈美容品牌零售商:Cos Bar
2017/04/21 全球购物
会计电算化专业毕业生推荐信
2013/12/24 职场文书
新娘父亲婚礼致辞
2014/01/16 职场文书
信息管理专业自荐书
2014/06/05 职场文书
企业管理标语
2014/06/10 职场文书
个人买房协议书范本
2014/10/06 职场文书
防灾减灾标语
2014/10/07 职场文书
计算机考试作弊检讨书1000字
2015/01/01 职场文书
幼儿园小班开学寄语
2015/05/27 职场文书
2015个人年度工作总结范文
2015/05/28 职场文书
新教师教学工作总结
2015/08/14 职场文书