1.模块安装

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文档读写的更多相关文章

  1. 如何在命令行模式下查看Python帮助文档---dir、help、__doc__

    如何在命令行模式下查看Python帮助文档---dir.help.__doc__ 1.dir函数式可以查看对象的属性,使用方法很简单,举str类型为例,在Python命令窗口输入 dir(str) 即 ...

  2. QJsonDocument实现Qt下JSON文档读写

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QJsonDocument实现Qt下JSON文档读写     本文地址:http://tech ...

  3. python统计文档中词频

    python统计文档中词频的小程序 python版本2.7 效果如下: 程序如下,测试文件与完整程序在我的github中 #统计空格数与单词数 本函数只返回了空格数 需要的可以自己返回多个值 def ...

  4. NPOI(2.1.3)向excel中插入图片,xls文档图片插入成功,xlsx文档图片插入失败

    众所周知,NPOI对xls和xlsx两个版本的excel文档的操作并没有一个统一的支持, 程序若想兼容这两个版本的操作,必须根据excel版本分别去调用HSSF和XSSF这两套操作库, 之前一直不明白 ...

  5. SpringMVC 下载XLS文档的设置

    页面设置参考上文.SpringMVC 下载文本文档的设置 此文是关于xls文档下载的,这个文档使用Apache的POI生成,需要的jar包可以从下面地址下载: http://pan.baidu.com ...

  6. 在命令行模式下查看Python帮助文档---dir、help、__doc__

    在命令行模式下查看Python帮助文档---dir.help.__doc__   1.dir函数式可以查看对象的属性,使用方法很简单,举str类型为例,在Python命令窗口输入 dir(str) 即 ...

  7. Python帮助文档中Iteration iterator iterable 的理解

    iteration这个单词,是循环,迭代的意思.也就是说,一次又一次地重复做某件事,叫做iteration.所以很多语言里面,循环的循环变量叫i,就是因为这个iteration. iteration指 ...

  8. 使用Python对文档单词进行计数

    做hacker.org上面的题目时,遇到了一个题目需要对RFC3280种长度为9的单词进行计数,并找出这些单词中出现次数最多的那个:Didactic Byte RFC3280文档有7000多行,靠人工 ...

  9. 三言两语聊Python模块–文档测试模块doctest

    doctest是属于测试模块里的一种,对注释文档里的示例进行检测. 给出一个例子: splitter.pydef split(line, types=None, delimiter=None): &q ...

随机推荐

  1. solr 如何实现精确查询

    第一条和第三条不应该出现的. 解决办法

  2. 面向对象编程思想(OOP)总结

    本文我将从面向对象编程思想是如何解决软件开发中各种疑难问题的角度,来讲述我们面向对象编程思想的理解,梳理面向对象四大基本特性.七大设计原则和23种设计模式之间的关系. 软件开发中疑难问题: 软件复杂庞 ...

  3. POJ 4718 /// 树链剖分+线段树区间合并 求树上两点间的LCIS长度

    题目大意: 给定n个点 每个点都有权值 接下来给定树的n条边 第 i 个数 a[i] 表示 i+1到a[i]之间 有一条边 给定q q个询问 每次询问给出 x y 求x到y的最长上升子序列的长度 题解 ...

  4. 2018自己的JavaScript开发指南

    这是一个备忘清单,可以让你在不用做太多选择的情况下快速学习.我会列出一些工具来满足大部分场景下的前端开发.当你看完这篇文章,你会有足够的自信来调整你的技术栈. ☉概要 我会将地图划分为你需要解决的问题 ...

  5. 纯css制作小三角

    在网站制作的过程中常涉及一些小图标,以前大部分会采用小图片.但有了css3后很多变得方便了,比如要在li列表的每行文字的前面加个小三角,可以这么写: <!DOCTYPE html> < ...

  6. mysql连接数问题备份

    一. max_connections 这是是查询数据库当前设置的最大连接数 mysql> show variables like '%max_connections%';+----------- ...

  7. css---7自定义字体

    1.Adobe illustrator AI是一种应用于出版.多媒体和在线图像的工业标准矢量插画的软件,是一款非常好的矢量图形处理工具. 该软件主要应用于印刷出版.海报书籍排版.专业插画.多媒体图像处 ...

  8. jquery学习笔记(三):事件和应用

    内容来自[汇智网]jquery学习课程 3.1 页面加载事件 在jQuery中页面加载事件是ready().ready()事件类似于就JavaScript中的onLoad()事件,但前者只要页面的DO ...

  9. overload和override二者之间的区别

    overload和override三者之间的区别 Overload是重载,是有相同的方法名,但参数类型或个数彼此不同Override是重写,是在子类与父类中,子类中的方法的方法名,参数个数.类型都与父 ...

  10. Vue入坑——vue-cli(脚手架)目录结构认识

    转载:https://my.oschina.net/u/3802541/blog/1809182 一.目录结构 |-- build                            // 项目构建 ...