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 相关文章推荐
Python发送form-data请求及拼接form-data内容的方法
Mar 05 Python
Python常用知识点汇总
May 08 Python
Python随机生成手机号、数字的方法详解
Jul 21 Python
Python 错误和异常代码详解
Jan 29 Python
基于循环神经网络(RNN)的古诗生成器
Mar 26 Python
Python 数据处理库 pandas 入门教程基本操作
Apr 19 Python
PyTorch线性回归和逻辑回归实战示例
May 22 Python
手把手教你如何安装Pycharm(详细图文教程)
Nov 28 Python
解决在pycharm中显示额外的 figure 窗口问题
Jan 15 Python
python 读写excel文件操作示例【附源码下载】
Jun 19 Python
python并发编程多进程 模拟抢票实现过程
Aug 20 Python
MAC平台基于Python Appium环境搭建过程图解
Aug 13 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
ADODB类使用
2006/11/25 PHP
php include加载文件两种方式效率比较
2010/08/08 PHP
第4章 数据处理-php数组的处理-郑阿奇
2011/07/04 PHP
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
2011/11/07 PHP
PHP5.3新特性小结
2016/02/14 PHP
PHP实现上一篇下一篇的方法实例总结
2016/09/22 PHP
php 反斜杠处理函数addslashes()和stripslashes()实例详解
2016/12/25 PHP
php头像上传预览实例代码
2017/05/02 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
2017/07/03 PHP
PHP延迟静态绑定的深入讲解
2018/04/02 PHP
Jquery Ajax学习实例3 向WebService发出请求,调用方法返回数据
2010/03/16 Javascript
jQuery绑定事件监听bind和移除事件监听unbind用法实例详解
2016/01/19 Javascript
前端学习笔记style,currentStyle,getComputedStyle的用法与区别
2016/05/28 Javascript
Bootstrap + AngularJS 实现简单的数据过滤字符查找功能
2017/07/27 Javascript
JavaScript调试之console.log调试的一个小技巧分享
2017/08/07 Javascript
[50:58]2018DOTA2亚洲邀请赛3月29日 小组赛A组OpTic VS Newbee
2018/03/30 DOTA
使用django-suit为django 1.7 admin后台添加模板
2014/11/18 Python
浅谈python 线程池threadpool之实现
2017/11/17 Python
Python面向对象之类和实例用法分析
2019/06/08 Python
对pyqt5中QTabWidget的相关操作详解
2019/06/21 Python
python入门之基础语法学习笔记
2020/02/08 Python
Python使用pyyaml模块处理yaml数据
2020/04/14 Python
如何用用Python将地址标记在地图上
2021/02/07 Python
印尼最大的网上书店:Gramedia.com
2018/09/13 全球购物
面向对象概念面试题(.NET)
2016/11/04 面试题
通用求职信范文模板分享
2013/12/27 职场文书
最新党员思想汇报
2014/01/01 职场文书
三个儿子教学反思
2014/02/03 职场文书
安全施工标语
2014/06/07 职场文书
师德师风自我剖析材料
2014/09/27 职场文书
群众路线教育实践活动心得体会(四风)
2014/11/03 职场文书
个人学习群众路线心得体会
2014/11/05 职场文书
2015年社区精神文明工作总结
2015/05/26 职场文书
2015年计算机教师工作总结
2015/07/22 职场文书
使用Django框架创建项目
2022/06/10 Python
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers