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中的迭代器、生成器与列表解析用法
Mar 20 Python
Python网络爬虫实例讲解
Apr 28 Python
python去掉行尾的换行符方法
Jan 04 Python
对pandas replace函数的使用方法小结
May 18 Python
pycharm中使用anaconda部署python环境的方法步骤
Dec 19 Python
opencv python统计及绘制直方图的方法
Jan 21 Python
使用Python做垃圾分类的原理及实例代码附源码
Jul 02 Python
Python进阶之使用selenium爬取淘宝商品信息功能示例
Sep 16 Python
解决keras加入lambda层时shape的问题
Jun 11 Python
Python依赖包迁移到断网环境操作
Jul 13 Python
python小程序之飘落的银杏
Apr 17 Python
在Python 中将类对象序列化为JSON
Apr 06 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
自己做矿石收音机
2021/03/02 无线电
php查询及多条件查询
2017/02/26 PHP
laravel框架之数据库查出来的对象实现转化为数组
2019/10/23 PHP
多广告投放代码 推荐
2006/11/13 Javascript
Mootools 1.2教程 Tooltips
2009/09/15 Javascript
jQuery帮助之筛选查找 children([expr])
2011/01/31 Javascript
jQuery实现文档树效果
2017/02/20 Javascript
AngularJS ionic手势事件的使用总结
2017/08/09 Javascript
php main 与 iframe 相互通讯类(js+php同域/跨域)
2017/09/14 Javascript
ES6中Array.find()和findIndex()函数的用法详解
2017/09/16 Javascript
React中的render何时执行过程
2018/04/13 Javascript
jQuery实现的页面弹幕效果【测试可用】
2018/08/17 jQuery
微信小程序下拉框组件使用方法详解
2018/12/28 Javascript
微信小程序云开发之数据库操作
2019/05/18 Javascript
[38:39]KG vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python中使用sys模板和logging模块获取行号和函数名的方法
2014/04/15 Python
python删除服务器文件代码示例
2018/02/09 Python
python 3.7.0 下pillow安装方法
2018/08/27 Python
kafka-python批量发送数据的实例
2018/12/27 Python
python实现一个简单的ping工具方法
2019/01/31 Python
Python 通过微信控制实现app定位发送到个人服务器再转发微信服务器接收位置信息
2019/08/05 Python
详解python中的闭包
2020/09/07 Python
python+excel接口自动化获取token并作为请求参数进行传参操作
2020/11/10 Python
python中使用np.delete()的实例方法
2021/02/01 Python
详解移动端HTML5音频与视频问题及解决方案
2018/08/22 HTML / CSS
金属材料工程毕业生个人的自我评价
2013/11/28 职场文书
心得体会怎么写
2013/12/30 职场文书
经济信息系毕业生自荐信范文
2014/03/15 职场文书
爱情寄语大全
2014/04/09 职场文书
《鲁班和橹板》教学反思
2014/04/27 职场文书
个人股份合作协议书
2014/10/24 职场文书
2014年打非治违工作总结
2014/11/13 职场文书
先进人物事迹材料
2014/12/29 职场文书
放牛班的春天观后感
2015/06/01 职场文书
CentOS7安装MySQL8的超级详细教程(无坑!)
2022/06/10 Servers
mysql数据库如何转移到oracle
2022/12/24 MySQL