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实现Tab自动补全和历史命令管理的方法
Mar 12 Python
Python类属性与实例属性用法分析
May 09 Python
python中format()函数的简单使用教程
Mar 14 Python
深入理解Django自定义信号(signals)
Oct 15 Python
Python 将Matrix、Dict保存到文件的方法
Oct 30 Python
pandas 数据归一化以及行删除例程的方法
Nov 10 Python
python实现简易数码时钟
Feb 19 Python
Python实现Restful API的例子
Aug 31 Python
python是怎么被发明的
Jun 15 Python
利用Pycharm + Django搭建一个简单Python Web项目的步骤
Oct 22 Python
python使用openpyxl库读写Excel表格的方法(增删改查操作)
May 02 Python
opencv读取视频并保存图像的方法
Jun 04 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
Zerg剧情介绍
2020/03/14 星际争霸
php不允许用户提交空表单(php空值判断)
2013/11/12 PHP
php使用curl检测网页是否被百度收录的示例分享
2014/01/31 PHP
destoon整合UCenter图文教程
2014/06/21 PHP
yii2 在控制器中验证请求参数的使用方法
2019/06/19 PHP
JSQL SQLProxy 的 php 版本代码
2010/05/05 Javascript
js getElementsByTagName的简写方式
2010/06/27 Javascript
Javacript实现颜色梯度变化和渐变的效果代码
2013/05/31 Javascript
jQuery实现图片信息的浮动显示实例代码
2013/08/28 Javascript
jQuery使用ajaxSubmit()提交表单示例
2014/04/04 Javascript
jQuery实现HTML5 placeholder效果实例
2014/12/09 Javascript
javascript数组去重的方法汇总
2015/04/14 Javascript
jquery中键盘事件小结
2016/02/24 Javascript
js前端解决跨域问题的8种方案(最新最全)
2016/11/18 Javascript
设置jquery UI 控件的大小方法
2016/12/12 Javascript
canvas红包照片实例分享
2017/02/28 Javascript
js实现3D图片展示效果
2017/03/09 Javascript
详解javascript appendChild()的完整功能
2018/08/18 Javascript
浅谈VUE单页应用首屏加载速度优化方案
2018/08/28 Javascript
详解Vue中的watch和computed
2020/11/09 Javascript
Python爬虫天气预报实例详解(小白入门)
2018/01/24 Python
python使用代理ip访问网站的实例
2018/05/07 Python
python+splinter自动刷新抢票功能
2018/09/25 Python
python实现将文件夹下面的不是以py文件结尾的文件都过滤掉的方法
2018/10/21 Python
Django+JS 实现点击头像即可更改头像的方法示例
2018/12/26 Python
一文了解Python并发编程的工程实现方法
2019/05/31 Python
python使用beautifulsoup4爬取酷狗音乐代码实例
2019/12/04 Python
css 如何让背景图片拉伸填充避免重复显示
2013/07/11 HTML / CSS
使用layui框架实现点击左侧导航切换右侧内容且右侧选项卡跟随变化的效果
2020/11/10 HTML / CSS
西班牙最大的婴儿用品网上商店:Bebitus
2019/05/30 全球购物
了解AppleShare protocol(AppleShare协议)吗
2015/08/28 面试题
网吧收银员岗位职责
2013/12/14 职场文书
法人代表身份证明书及授权委托书
2014/09/16 职场文书
2014年文艺部工作总结
2014/11/17 职场文书
寻找成龙观后感
2015/06/12 职场文书
Redisson实现Redis分布式锁的几种方式
2021/08/07 Redis