python excel使用进阶篇
来源:互联网 发布:百度人工智能负责人 编辑:程序博客网 时间:2024/06/05 08:54
需求:定期的统计一些内容,将这些内容写入到excel中,要求:excel以当天日期为名,sheet页以当前时间为名
本文的思路如下:
1.首先检查excel 是否存在
2.如果不存在, 就创建excel,然后写入数据
3.如果存在,先打开,然后复制一份,再追加一个sheet页,写入新的数据。
思路来源: 使用xlwt,xlrd 这两个模块来读写excel,但是这两个模块一个是负责写的,一个是负责读的,并不能同时读写,因此如果有表格存在,就先以读的形式打开,然后复制以为,重新写入,再追加新的数据
代码如下:
#coding:utf-8 import time,osimport xlrd import xlwtfrom xlutils.copy import copyimport sysreload(sys) sys.setdefaultencoding('utf-8') #计算时间函数,作为装饰器存在def print_run_time(func): def wrapper(*args, **kw): local_time = time.time() func(*args, **kw) print 'current Function [%s] run time is %.2f' % (func.__name__ ,time.time() - local_time) return wrapper @print_run_timedef create_excel(data):excle_file_name=str(time.strftime('%Y-%m-%d')+'.xls')#以当天日期创建excel表#判断一个文件是否存在def file_is_exist(file_name):path = os.path.join(os.getcwd()+'/'+file_name)print 'current file [%s] path is [%s]' % (file_name,path)is_exists = os.path.exists(path)return is_exists#读取复制一份,并且增加一张新表def read_and_copy_excle(excle_file_name):read_excel_flag=xlrd.open_workbook(excle_file_name,formatting_info=True)#保存原有格式count = len(read_excel_flag.sheets()) #sheet数量for r in read_excel_flag.sheets():print r.name #sheet名称worksheet_copy=copy(read_excel_flag)#复制一份excelwrite_excel(worksheet_copy,excle_file_name)#之后再次插入一份#写exceldef write_excel(excel_flag,excle_file_name):sheet_name=str(time.strftime('%Y-%m-%d_%H-%M-%S'))sheet_flag = excel_flag.add_sheet(sheet_name,cell_overwrite_ok=True) #创建sheetfirst_line=[u'编号',u'标题',u'阅读次数',u'评论次数',u'文章地址']#定义字体式样 style = xlwt.easyxf('font:height 240, color-index red, bold on;align: wrap on, vert centre, horiz center');#生成第一行for i in range(0,len(first_line)):sheet_flag.write(0,i,first_line[i],style)sheet_flag.col(i).width=256*15#设置单元格宽度#这里的数据处理的是测试数据,处理自己的数据需要重写这几行代码,但是思路是一样的row_index=1for data_detail in data:cols_index =0sheet_flag.write(row_index,cols_index,data_detail,set_style('Arial',300,False))#sheet_flag.col(cols_index).width=sheet_flag.col(cols_index+1).widthcols_index +=1row_index +=1excel_flag.save(excle_file_name) #保存文件#定义单元格字体式样, 其实这种方法不是特别好用def set_style(name,height,bold):style = xlwt.XFStyle() # 初始化样式font = xlwt.Font() # 为样式创建字体font.name = name # 'Times New Roman'font.bold = boldfont.color_index = 4font.height = height borders= xlwt.Borders()borders.left= 6borders.right= 6borders.top= 6borders.bottom= 6style.font = fontstyle.borders = bordersreturn style#文件存在就复制一份,并在其表的后面插入一个,不存在就新创建一个if file_is_exist(excle_file_name):print 'file 【%s】 exist ' % excle_file_nameread_and_copy_excle(excle_file_name)#复制一个excle并追加一个sheet页else:print 'file 【%s】is not exist, will create it ' % excle_file_nameexcel_flag=xlwt.Workbook()#新建excel工作薄write_excel(excel_flag,excle_file_name)if __name__ == '__main__':print '''***************************************** ** Welcome to Spider of excel ** ** Created on 2017-05-05 ** ** @author: Jimy _Fengqi ** *****************************************'''test_data=[j for j in range(0,200,2)]#这里仅仅用一些测试数据create_excel(test_data)
1 0
- python excel使用进阶篇
- Python数据分析---EXCEL进阶使用
- Python进阶之使用@property
- 【进阶】使用Excel进行相关分析
- 使用python操作excel
- 使用python处理Excel
- 使用python读取excel
- 使用python读取excel
- python学习--进阶篇
- Python进阶篇一
- python初级进阶篇
- 使用Python进行任务调度(进阶篇)
- Python进阶强化训练之装饰器使用技巧进阶
- 使用Python处理Excel表格
- 使用python处理excel表格
- 使用Python处理Excel表格
- python操作excel使用win32com
- Python使用xlrd处理Excel
- spring源码解读:BeanFactory接口
- 使用 Referer Meta 标签控制 referer—详解 referrer-policy
- Redis系列(三)--过期策略
- 定义char时加单引号与不加单引号的区别
- 使用浏览器查看Android SQLite数据库-Android Debug Database用法
- python excel使用进阶篇
- Android:一个通用的底部导航
- 深入理解Python(二)
- Codeforces Round #411 (Div. 2) D. Minimum number of steps
- SPI和IIC通信区别
- Pycharm首次安装
- 剑指offer 27. 二叉搜索树与双向链表
- 【读书笔记】机器学习实战-2.3节
- 利用Java操作FTP文件上传,下载,删除