python2 对excel表格操作完整示例


Posted in Python onFebruary 23, 2020

本文实例讲述了python2 对excel表格操作。分享给大家供大家参考,具体如下:

#!/usr/bin/env python2
# -*- coding: utf-8 -*-
"""
Created on Sat Dec 2 15:40:35 2017
@author: 260207
"""
from xlutils.copy import copy
import xlrd 
import xlwt
def set_style(name = 'Times New Roman',height = 6,bold=False):
#  设置单元格样式
  style = xlwt.XFStyle() # 初始化样式
  font = xlwt.Font()  # 设置字体样式
  font.name = name   # 字体名称'Times New Roman'
  font.bold = bold   #加粗 
  font.color_index = 4 #颜色
  font.height = height #高度
  style.font = font     #定义字体属性
  return style
def write_excel(bomcode ): #创建标准件模板
  excel = xlwt.Workbook() #创建工作簿
  import datetime
  dateTime=datetime.datetime.now().strftime('%Y-%m-%d')
  sheet1 = excel.add_sheet(u'标贴防错系统',cell_overwrite_ok=True)
  #生成表头,即第一列
  sheet1.write(0,0,u'订单编码',set_style('Times New Roman',180))
  sheet1.write(0,1,u'当前时间',set_style('Times New Roman',180))
  sheet1.write(0,2,u'检测总量', set_style('Times New Roman', 180))
  sheet1.write(0,3,u'出错数量', set_style('Times New Roman', 180))
  sheet1.write(0, 4, u'正确数量', set_style('Times New Roman', 180))
  sheet1.write(0,5,u'合格率', set_style('Times New Roman', 180))
  excel.save(file_dir+str(dateTime)+'.xls') #保存文件
#
def seefile(file_dir):
  import os
  L=[] 
  for root, dirs, files in os.walk(file_dir): 
    for file in files: 
      if os.path.splitext(file)[1] == '.xls': 
        L.append(os.path.join(root, file)) 
  return L
def add_excel(passflag,row,error,true): # 添加内容
  import datetime
  dateTime = datetime.datetime.now().strftime('%Y-%m-%d') # 查看时间
  nowTime = datetime.datetime.now().strftime('%H:%M:%S')
  workbook = xlrd.open_workbook(file_dir+str(dateTime)+'.xls','r+')
  new_excel = copy(workbook)
  ws = new_excel.get_sheet(0) # 索引到表格
  ws.write(row, 0, str(bomcode), set_style('Times New Roman', 180))
  ws.write(row, 1, str(nowTime), set_style('Times New Roman', 180)) 
  if passflag == 1:
    ws.write(row, 3, error+1, set_style('Times New Roman', 180))
    ws.write(row, 4, true, set_style('Times New Roman', 180))
  else:
    ws.write(row, 4, true+1, set_style('Times New Roman', 180))
    ws.write(row, 3, error, set_style('Times New Roman', 180))
  ws.write(row, 2, error+true+1, set_style('Times New Roman', 180))
  new_excel.save(file_dir+str(dateTime)+'.xls')
def pass_rate(row):
  import datetime
  dateTime = datetime.datetime.now().strftime('%Y-%m-%d')
  workbook112 = xlrd.open_workbook(file_dir+str(dateTime)+'.xls','r+')
  all_excel = copy(workbook112)
  ws1 = all_excel.get_sheet(0)
  workbook_position = workbook112.sheet_by_index(0)
  all_value=workbook_position.cell(row,2).value
  true_value=workbook_position.cell(row,4).value
  ws1.write(row, 5, round(float(true_value)/(all_value),2), set_style('Times New Roman', 180)) 
  all_excel.save(file_dir+str(dateTime)+'.xls')
def data_analysis(bomcode):
  import datetime
  dateTime = datetime.datetime.now().strftime('%Y-%m-%d')
  filename = seefile(file_dir)
  filename = list(reversed(filename))
  #增加异常,文件名需按最新时间排列
  if (filename ==[]) or (filename is None) or (dateTime!=(filename[0])[-14:-4]) :
    write_excel(bomcode)
  workbook = xlrd.open_workbook(file_dir+str(dateTime)+'.xls','r+')
  workbook_position = workbook.sheet_by_index(0)
  cols_0 = workbook_position.col_values(0)
  if bomcode in cols_0:    
    row_error = cols_0.index(bomcode)
    error=workbook_position.cell(row_error,3).value
    true=workbook_position.cell(row_error,4).value
    row = row_error
  else :
    error = 0
    true = 0
    row = len(cols_0)
  add_excel(passflag,row,error,true)
  pass_rate(row)
if __name__ == '__main__':
  file_dir ='C:/Users/Administrator/Desktop/Data_analysis/'
  bomcode='21122'
  passflag =0
  data_analysis(bomcode)
#  add_excel(bomcode,passflag,row)

运行后将数据写入如下xls文件:

python2 对excel表格操作完整示例

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
解决python2.7用pip安装包时出现错误的问题
Jan 23 Python
Python Socket实现简单TCP Server/client功能示例
Aug 05 Python
Python实现的文本对比报告生成工具示例
May 22 Python
Python加载带有注释的Json文件实例
May 23 Python
Django实现分页功能
Jul 02 Python
Python小进度条显示代码
Mar 05 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
Aug 12 Python
Python字符编码转码之GBK,UTF8互转
Feb 09 Python
python shell命令行中import多层目录下的模块操作
Mar 09 Python
浅谈keras中loss与val_loss的关系
Jun 22 Python
如何使用python记录室友的抖音在线时间
Jun 29 Python
keras用auc做metrics以及早停实例
Jul 02 Python
深入浅析python变量加逗号,的含义
Feb 22 #Python
详解django中Template语言
Feb 22 #Python
Python使用configparser库读取配置文件
Feb 22 #Python
Pytest参数化parametrize使用代码实例
Feb 22 #Python
Pytest mark使用实例及原理解析
Feb 22 #Python
python如何通过闭包实现计算器的功能
Feb 22 #Python
postman和python mock测试过程图解
Feb 22 #Python
You might like
PHP+AJAX实现无刷新注册(带用户名实时检测)
2006/12/02 PHP
Ajax中的JSON格式与php传输过程全面解析
2017/11/14 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
2017/12/25 PHP
JAVASCRIPT keycode总结
2009/02/04 Javascript
setTimeout自动触发一个js的方法
2014/01/15 Javascript
常见的原始JS选择器使用方法总结
2014/04/09 Javascript
Node.js中使用Buffer编码、解码二进制数据详解
2014/08/16 Javascript
jQuery与getJson结合的用法实例
2015/08/07 Javascript
jQuery实现的图文高亮滚动切换特效实例
2015/08/10 Javascript
jquery带动画效果幻灯片特效代码
2015/08/27 Javascript
AngularJS转换响应内容
2016/01/27 Javascript
原生js实现class的添加和删除简单代码
2016/07/12 Javascript
详解打造 Vue.js 可复用组件
2017/03/24 Javascript
ECMAscript 变量作用域总结概括
2017/08/18 Javascript
使用 vue.js 构建大型单页应用
2018/02/10 Javascript
vue-devtools的安装和使用步骤详解
2019/10/17 Javascript
[02:40]DOTA2英雄基础教程 炼金术士
2013/12/23 DOTA
python del()函数用法
2013/03/24 Python
跟老齐学Python之for循环语句
2014/10/02 Python
使用相同的Apache实例来运行Django和Media文件
2015/07/22 Python
python3+PyQt5实现自定义流体混合窗口部件
2018/04/24 Python
Python3实现的反转单链表算法示例
2019/03/08 Python
学习Python爬虫的几点建议
2020/08/05 Python
Python实现京东抢秒杀功能
2021/01/25 Python
什么是ESB?请介绍一下ESB?
2015/05/27 面试题
财务人员个人求职信范文
2013/12/04 职场文书
3.15国际消费者权益日主题活动活动总结
2014/03/16 职场文书
暑期社会实践先进个人主要事迹
2014/05/22 职场文书
承诺书格式
2014/06/03 职场文书
计算机网络专业求职信
2014/06/05 职场文书
检察院院长群众路线教育实践活动个人整改措施
2014/10/04 职场文书
大学生自我推荐信范文
2015/03/24 职场文书
实习证明模板
2015/06/16 职场文书
新闻稿怎么写
2015/07/18 职场文书
基于tensorflow权重文件的解读
2021/05/26 Python
python基础之类方法和静态方法
2021/10/24 Python