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实现简单的计时器功能函数
Mar 14 Python
python实现用于测试网站访问速率的方法
May 26 Python
python函数形参用法实例分析
Aug 04 Python
Python中使用OpenCV库来进行简单的气象学遥感影像计算
Feb 19 Python
Python文件操作之合并文本文件内容示例代码
Sep 19 Python
Python中生成器和迭代器的区别详解
Feb 10 Python
Python 从相对路径下import的方法
Dec 04 Python
Python检查ping终端的方法
Jan 26 Python
django多种支付、并发订单处理实例代码
Dec 13 Python
Django分组聚合查询实例分享
Apr 29 Python
Pytorch框架实现mnist手写库识别(与tensorflow对比)
Jul 20 Python
pandas使用函数批量处理数据(map、apply、applymap)
Nov 27 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 zlib压缩和解压缩swf文件的代码
2008/12/30 PHP
PHP 字符串 小常识
2009/06/05 PHP
php中获取指定IP的物理地址的代码(正则表达式)
2011/06/23 PHP
php返回json数据函数实例
2014/10/09 PHP
PHP自带ZIP压缩、解压缩类ZipArchiv使用指南
2015/03/03 PHP
PHP中Socket连接及读写数据超时问题分析
2016/07/19 PHP
Yii2配置Nginx伪静态的方法
2017/05/05 PHP
PHP实现下载远程图片保存到本地的方法
2017/06/19 PHP
Javascript中的Split使用方法与技巧
2007/03/09 Javascript
用jquery与css打造个性化的单选框和复选框
2010/10/20 Javascript
D3.js中data(), enter() 和 exit()的问题详解
2015/08/17 Javascript
深入学习JavaScript的AngularJS框架中指令的使用方法
2016/03/05 Javascript
JQuery Mobile 弹出式登录框的实现方法
2016/05/28 Javascript
看看“疫苗查询”小程序有温度的代码
2018/07/31 Javascript
最简单的vue消息提示全局组件的方法
2019/06/16 Javascript
vue动态子组件的两种实现方式
2019/09/01 Javascript
VUEX 数据持久化,刷新后重新获取的例子
2019/11/12 Javascript
javascript实现前端input密码输入强度验证
2020/06/24 Javascript
Vue看了就会的8个小技巧
2021/01/21 Vue.js
python实现微信接口(itchat)详细介绍
2017/10/23 Python
Python管理Windows服务小脚本
2018/03/12 Python
教你使用python画一朵花送女朋友
2018/03/29 Python
python TKinter获取文本框内容的方法
2018/10/11 Python
tensorflow模型保存、加载之变量重命名实例
2020/01/21 Python
python GUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法
2020/02/26 Python
Canvas 文本转粒子效果的实现代码
2019/02/14 HTML / CSS
KARATOV珠宝在线商店:俄罗斯珠宝品牌
2019/03/13 全球购物
美国环保妈妈、儿童和婴儿用品购物网站:The Tot
2019/11/24 全球购物
PHP如何自定义函数
2016/09/16 面试题
化工专业个人的求职信范文
2013/11/28 职场文书
优秀学生干部个人事迹材料
2014/06/02 职场文书
公证处委托书
2015/01/28 职场文书
SQL注入的实现以及防范示例详解
2021/06/02 MySQL
Python matplotlib可视化之绘制韦恩图
2022/02/24 Python
python神经网络 tf.name_scope 和 tf.variable_scope 的区别
2022/05/04 Python
德生TECSUN S-2000使用手册文字版
2022/05/10 无线电