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 selenium 三种等待方式解读
Sep 15 Python
python递归查询菜单并转换成json实例
Mar 27 Python
Python中字典(dict)合并的四种方法总结
Aug 10 Python
Python cookbook(数据结构与算法)在字典中将键映射到多个值上的方法
Feb 18 Python
python矩阵/字典实现最短路径算法
Jan 17 Python
在Python 中实现图片加框和加字的方法
Jan 26 Python
pytorch 彩色图像转灰度图像实例
Jan 13 Python
python中图像通道分离与合并实例
Jan 17 Python
Python标准库json模块和pickle模块使用详解
Mar 10 Python
Django 5种类型Session使用方法解析
Apr 29 Python
Keras Convolution1D与Convolution2D区别说明
May 22 Python
使用 prometheus python 库编写自定义指标的方法(完整代码)
Jun 29 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 Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
2012/06/17 PHP
PHP延迟静态绑定的深入讲解
2018/04/02 PHP
input+select(multiple) 实现下拉框输入值
2009/05/21 Javascript
Javascript 获取滚动条位置等信息的函数
2009/09/08 Javascript
基于jquery的文本框与autocomplete结合使用(asp.net+json)
2012/05/30 Javascript
让你的博客飘雪花超出屏幕依然看得见
2013/01/04 Javascript
jquery实现可拖拽弹出层特效
2015/01/04 Javascript
Javascript基础教程之break和continue语句
2015/01/18 Javascript
js实现有时间限制消失的图片方法
2015/02/27 Javascript
JavaScript实现的伸展收缩型菜单代码
2015/10/14 Javascript
基于jquery实现页面滚动时顶部导航显示隐藏
2020/04/20 Javascript
jsp 网站引入外部css或者js失效问题解决
2016/10/31 Javascript
解析如何利用iframe标签以及js制作时钟
2016/12/08 Javascript
JavaScript实现QQ聊天消息展示和评论提交功能
2017/05/22 Javascript
详解vuejs之v-for列表渲染
2017/06/22 Javascript
vue-cli下的vuex的简单Demo图解(实现加1减1操作)
2018/02/26 Javascript
JavaScript 中的 this 工作原理
2018/06/20 Javascript
对TypeScript库进行单元测试的方法
2019/07/18 Javascript
vant 时间选择器--开始时间和结束时间实例
2020/11/04 Javascript
Sublime开发python程序的示例代码
2018/01/24 Python
python 读取txt,json和hdf5文件的实例
2018/06/05 Python
使用matplotlib中scatter方法画散点图
2019/03/19 Python
Python 3 使用Pillow生成漂亮的分形树图片
2019/12/24 Python
Python字符串及文本模式方法详解
2020/09/10 Python
python3实现语音转文字(语音识别)和文字转语音(语音合成)
2020/10/14 Python
HTML5 离线应用之打造零请求、无流量网站的解决方法
2013/04/25 HTML / CSS
马来西亚最大的电器网站:Senheng
2017/10/13 全球购物
汽车工程专业应届生求职信
2013/10/19 职场文书
中学劳技课教师的自我评价
2014/02/05 职场文书
2014年汽车销售工作总结
2014/12/01 职场文书
学校食堂食品安全承诺书
2015/04/29 职场文书
安全伴我行主题班会
2015/08/13 职场文书
最新农村养殖致富:资金投入较低的创业项目有哪些?
2019/09/26 职场文书
只用40行Python代码就能写出pdf转word小工具
2021/05/31 Python
使用ORM新增数据在Mysql中的操作步骤
2021/07/26 MySQL
Nginx跨域问题解析与解决
2022/08/05 Servers