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.效果展示

最新文章

  1. 数据类型安全验证都交给TryParse吧
  2. ActiveMQ第六弹:设置多个并行的消费者
  3. Golden Gate 概念和机制
  4. bzoj4562: [Haoi2016]食物链--记忆化搜索
  5. HDU 3622 Bomb Game(二分+2SAT)
  6. JavaScript高级程序设计笔记之面向对象
  7. php日期处理 -- 获取本周和上周的开始日期和结束日期(备忘)
  8. android调用百度地图API
  9. Html.Action、html.ActionLink与Url.Action的区别
  10. java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符
  11. luogu P1943 LocalMaxima_NOI导刊2009提高(1)
  12. Photobucket不能用了怎么办?推荐10个在线图片储存服务!
  13. TMS320VC5509的MCBSP配置成SPI模式通信
  14. mysql+mycat压力测试一例【转】
  15. React从0到1
  16. 基于jQuery适合做图片类网站的特效
  17. python实现定时发送系列
  18. Angular的第一个helloworld
  19. 虚拟机中安装MAC OS X教程(适用所有电脑方法,特别是cpu不支持硬件虚拟化的电脑)
  20. MyCAT 命令行监控

热门文章

  1. Codeforces 1174B Ehab Is an Odd Person
  2. 升级MySQL5.7.22版本_总结记录
  3. js用document.getElementById时要注意!
  4. 02ubuntu下python环境安装
  5. LA 3263 /// 欧拉定理 oj21860
  6. USACO 2008 January Silver Telephone Lines /// 二分最短路 邻接表dijkstra oj22924
  7. D3.js(v3)+react 制作 一个带坐标与比例尺的柱形图 (V3版本)
  8. 客户端IAP二次验证
  9. JS对象 Array 数组对象 数组对象是一个对象的集合,里边的对象可以是不同类型的。数组的每一个成员对象都有一个“下标”,用来表示它在数组中的位置,是从零开始的
  10. NOI2014