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使用百度API上传文件到百度网盘代码分享
Nov 08 Python
学习python 之编写简单乘法运算题
Feb 27 Python
Python实现导出数据生成excel报表的方法示例
Jul 12 Python
有趣的python小程序分享
Dec 05 Python
利用python编写一个图片主色转换的脚本
Dec 07 Python
详解pytorch 0.4.0迁移指南
Jun 16 Python
使用PYTHON解析Wireshark的PCAP文件方法
Jul 23 Python
Pandas聚合运算和分组运算的实现示例
Oct 17 Python
Pandas 缺失数据处理的实现
Nov 04 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
Jun 24 Python
Python机器学习三大件之一numpy
May 10 Python
pytorch Dropout过拟合的操作
May 27 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
wiki-shan写的php在线加密的解密程序
2008/09/07 PHP
php错误、异常处理机制(补充)
2012/05/07 PHP
php inc文件使用的风险和注意事项
2013/11/12 PHP
php+ajax+json 详解及实例代码
2016/12/12 PHP
javascript延时重复执行函数 lLoopRun.js
2007/06/29 Javascript
JQuery扩展插件Validate 1 基本使用方法并打包下载
2011/09/05 Javascript
nodejs的require模块(文件模块/核心模块)及路径介绍
2013/01/14 NodeJs
动态加载js和css(外部文件)
2013/04/17 Javascript
JS去除右边逗号的简单方法
2013/07/03 Javascript
jQuery实现的简单提示信息插件
2015/12/08 Javascript
js发送短信倒计时的简单实现方法
2016/09/08 Javascript
JavaScript如何实现图片懒加载(lazyload) 提高用户体验(增强版)
2016/11/30 Javascript
Vue响应式添加、修改数组和对象的值
2017/03/20 Javascript
vue-cli项目中怎么使用mock数据
2017/09/27 Javascript
vue2.0 循环遍历加载不同图片的方法
2018/03/06 Javascript
重学JS 系列:聊聊继承(推荐)
2019/04/11 Javascript
react 中父组件与子组件双向绑定问题
2019/05/20 Javascript
vue+vant使用图片预览功能ImagePreview的问题解决
2020/04/10 Javascript
JavaScript indexOf()原理及使用方法详解
2020/07/09 Javascript
[02:16]DOTA2英雄基础教程 干扰者
2014/01/15 DOTA
python对配置文件.ini进行增删改查操作的方法示例
2017/07/28 Python
Python排序算法之选择排序定义与用法示例
2018/04/29 Python
pandas的唯一值、值计数以及成员资格的示例
2018/07/25 Python
详解爬虫被封的问题
2019/04/23 Python
Pycharm中使用git进行合作开发的教程详解
2020/11/17 Python
英国最大的汽车交易网站:Auto Trader UK
2016/09/23 全球购物
Belvilla德国:在线预订度假屋
2018/04/10 全球购物
养殖人员的创业计划书范文
2013/12/26 职场文书
大学总结自我鉴定
2014/01/18 职场文书
贷款工作证明模板
2015/06/12 职场文书
六一亲子活动感想
2015/08/07 职场文书
关于公司年会的开幕词
2016/03/04 职场文书
2019经典广告词集锦!
2019/07/02 职场文书
2019年最新感恩节祝福语(28句)
2019/11/27 职场文书
pytorch Dropout过拟合的操作
2021/05/27 Python
Python 如何利用ffmpeg 处理视频素材
2021/11/27 Python