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编程语言的35个与众不同之处(语言特征和使用技巧)
Jul 07 Python
python对象及面向对象技术详解
Jul 19 Python
python 简单的多线程链接实现代码
Aug 28 Python
Python中列表list以及list与数组array的相互转换实现方法
Sep 22 Python
django中的setting最佳配置小结
Nov 21 Python
详解用Python处理HTML转义字符的5种方式
Dec 27 Python
python爬取微信公众号文章的方法
Feb 26 Python
Numpy与Pytorch 矩阵操作方式
Dec 27 Python
pytorch-神经网络拟合曲线实例
Jan 15 Python
pycharm激活码快速激活及使用步骤
Mar 12 Python
详解Pycharm安装及Django安装配置指南
Sep 15 Python
Python开发之QT解决无边框界面拖动卡屏问题(附带源码)
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
PHP开发者常犯的10个MySQL错误更正剖析
2012/01/30 PHP
ASP和PHP实现生成网站快捷方式并下载到桌面的方法
2014/05/08 PHP
去掉destoon资讯内容页keywords关键字自带的文章标题的方法
2014/08/21 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
PHP abstract 抽象类定义与用法示例
2018/05/29 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
Laravel Eloquent ORM 多条件查询的例子
2019/10/10 PHP
PHP 8新特性简介
2020/08/18 PHP
JavaScript的面向对象(二)
2006/11/09 Javascript
JavaScript 函数式编程的原理
2009/10/16 Javascript
用JavaScript对JSON进行模式匹配 (Part 2 - 实现)
2010/07/17 Javascript
JQuery 拾色器插件发布-jquery.icolor.js
2010/10/20 Javascript
Node.js的特点详解
2017/02/03 Javascript
原JS实现banner图的常用功能
2017/06/12 Javascript
基于Vue实现图书管理功能
2017/10/17 Javascript
原生JavaScript实现Ajax异步请求
2017/11/19 Javascript
jquery实现点击a链接,跳转之后,该a链接处显示背景色的方法
2018/01/18 jQuery
微信、QQ、微博、Safari中使用js唤起App
2018/01/24 Javascript
微信小程序搭建(mpvue+mpvue-weui+fly.js)的详细步骤
2018/09/18 Javascript
详解Angular中实现自定义组件的双向绑定的两种方法
2018/11/23 Javascript
深入了解JavaScript 私有化
2019/05/30 Javascript
jQuery zTree插件快速实现目录树
2019/08/16 jQuery
javascript实现点击星星小游戏
2019/12/24 Javascript
React冒泡和阻止冒泡的应用详解
2020/08/18 Javascript
使用js获取身份证年龄的示例代码
2020/12/11 Javascript
在Python中调用ggplot的三种方法
2015/04/08 Python
Python入门之三角函数tan()函数实例详解
2017/11/08 Python
python+unittest+requests实现接口自动化的方法
2018/11/29 Python
django rest framework 实现用户登录认证详解
2019/07/29 Python
对pytorch中x = x.view(x.size(0), -1) 的理解说明
2021/03/03 Python
香港演唱会订票网站:StubHub香港
2019/10/10 全球购物
护理专业推荐信
2013/11/07 职场文书
2015年国税春训心得体会
2015/03/09 职场文书
2015年团队工作总结范文
2015/05/04 职场文书
二年级作文之动物作文
2019/11/13 职场文书
如何用 Python 子进程关闭 Excel 自动化中的弹窗
2021/05/07 Python