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构造函数及解构函数介绍
Feb 26 Python
Python实现模拟分割大文件及多线程处理的方法
Oct 10 Python
Python通过OpenCV的findContours获取轮廓并切割实例
Jan 05 Python
python3学习笔记之多进程分布式小例子
Feb 13 Python
python DataFrame获取行数、列数、索引及第几行第几列的值方法
Apr 08 Python
基于python requests库中的代理实例讲解
May 07 Python
Python unittest 简单实现参数化的方法
Nov 30 Python
Python下简易的单例模式详解
Apr 08 Python
Flask 上传自定义头像的实例详解
Jan 09 Python
django的模型类管理器——数据库操作的封装详解
Apr 01 Python
python中round函数如何使用
Jun 19 Python
python3实现简单飞机大战
Nov 29 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采集中国代理服务器网的方法
2015/06/16 PHP
Zend Framework入门教程之Zend_Registry组件用法详解
2016/12/09 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
2017/09/16 PHP
在laravel框架中使用model层的方法
2019/10/08 PHP
PHPstorm激活码2020年5月13日亲测有效
2020/09/17 PHP
Jquey拖拽控件Draggable使用方法(asp.net环境)
2010/09/28 Javascript
读取input:file的路径并显示本地图片的方法
2013/09/23 Javascript
js带缩略图的图片轮播效果代码分享
2015/09/14 Javascript
jQuery+css3实现转动的正方形效果(附demo源码下载)
2016/01/27 Javascript
jquery——九宫格大转盘抽奖实例
2017/01/16 Javascript
使用Xcache缓存器加速PHP网站的配置方法
2017/04/22 Javascript
关于foreach循环中遇到的问题小结
2017/05/08 Javascript
jQuery实现动态添加节点与遍历节点功能示例
2017/11/09 jQuery
NodeJS爬虫实例之糗事百科
2017/12/14 NodeJs
ReactNative实现Toast的示例
2017/12/31 Javascript
基于JavaScript实现抽奖系统
2018/01/16 Javascript
浅析JS中回调函数及用法
2018/07/25 Javascript
详解vue+axios给开发环境和生产环境配置不同的接口地址
2019/08/16 Javascript
微信小程序仿今日头条导航栏滚动解析
2019/08/20 Javascript
浅谈vue 锚点指令v-anchor的使用
2019/11/13 Javascript
VUE动态生成word的实现
2020/07/26 Javascript
Jquery $.map使用方法实例详解
2020/09/01 jQuery
[00:09]DOTA2全国高校联赛 精彩活动引爆全场
2018/05/30 DOTA
跨平台python异步回调机制实现和使用方法
2013/11/26 Python
Python unittest单元测试框架总结
2018/09/08 Python
win10下tensorflow和matplotlib安装教程
2018/09/19 Python
利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法
2019/01/08 Python
Python实现查找数组中任意第k大的数字算法示例
2019/01/23 Python
python 中xpath爬虫实例详解
2019/08/26 Python
Python目录和文件处理总结详解
2019/09/02 Python
python 插入日期数据到Oracle实例
2020/03/02 Python
基于selenium及python实现下拉选项定位select
2020/07/22 Python
欧洲第一的摇滚和金属乐队服装网站:EMP
2017/10/26 全球购物
大学生职业规划前言模板
2013/12/27 职场文书
个人股份转让协议书范本
2014/10/26 职场文书
详解CSS伪元素的妙用单标签之美
2021/05/25 HTML / CSS