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 输出一个两行字符的变量
Feb 05 Python
python实现socket客户端和服务端简单示例
Feb 24 Python
Python列表(list)常用操作方法小结
Feb 02 Python
使用Python编写简单的端口扫描器的实例分享
Dec 18 Python
Python模块WSGI使用详解
Feb 02 Python
Python实现爬取百度贴吧帖子所有楼层图片的爬虫示例
Apr 26 Python
Pandas:DataFrame对象的基础操作方法
Jun 07 Python
Python 动态导入对象,importlib.import_module()的使用方法
Aug 28 Python
Pyspark获取并处理RDD数据代码实例
Mar 27 Python
Django bulk_create()、update()与数据库事务的效率对比分析
May 15 Python
在keras中对单一输入图像进行预测并返回预测结果操作
Jul 09 Python
python设置表格边框的具体方法
Jul 17 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 错误之引号中使用变量
2009/05/04 PHP
PHP form 表单传参明细研究
2009/07/17 PHP
phpMyAdmin链接MySql错误 个人解决方案
2009/12/28 PHP
thinkphp区间查询、统计查询与SQL直接查询实例分析
2014/11/24 PHP
Yii不依赖Model的表单生成器用法实例
2014/12/04 PHP
PHP随机数 C扩展随机数
2016/05/04 PHP
Yii调试查看执行SQL语句的方法
2016/07/15 PHP
PHP编写daemon process详解及实例代码
2016/09/30 PHP
php通过执行CutyCapt命令实现网页截图的方法
2016/09/30 PHP
php简单实现单态设计模式的方法分析
2017/07/28 PHP
laravel5.2表单验证,并显示错误信息的实例
2019/09/29 PHP
MooTools 页面滚动浮动层智能定位实现代码
2011/08/23 Javascript
使用CoffeeScrip优美方式编写javascript代码
2015/10/28 Javascript
全面理解闭包机制
2016/07/11 Javascript
Bootstrap基本样式学习笔记之表格(2)
2016/12/07 Javascript
详解js数组的完全随机排列算法
2016/12/16 Javascript
Angular排序实例详解
2017/06/28 Javascript
nodejs中函数的调用实例详解
2018/10/31 NodeJs
微信小程序实现获取用户信息并存入数据库操作示例
2019/05/07 Javascript
基于vue如何发布一个npm包的方法步骤
2019/05/15 Javascript
原生JS实现贪吃蛇小游戏
2020/03/09 Javascript
基于better-scroll 实现歌词联动功能的代码
2020/05/07 Javascript
Python编写登陆接口的方法
2017/07/10 Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
2018/09/02 Python
为什么Python中没有&quot;a++&quot;这种写法
2018/11/27 Python
Python3.4解释器用法简单示例
2019/03/22 Python
Python进程池Pool应用实例分析
2019/11/27 Python
Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释
2020/01/25 Python
Python类的绑定方法和非绑定方法实例解析
2020/03/04 Python
html5将图片转换成base64的实例代码
2016/09/21 HTML / CSS
新西兰第一的行李箱网站:luggage.co.nz
2019/07/22 全球购物
大学军训感想
2014/02/12 职场文书
小学生交通安全寄语
2015/02/27 职场文书
2015年乡镇流动人口工作总结
2015/05/12 职场文书
叶县这家生产军用电台的兵工厂,人称“四机部”,走出一上将
2022/02/18 无线电
Go语言grpc和protobuf
2022/04/13 Golang