python2 对excel表格操作完整示例

 更新时间:2020年02月23日 10:29:37   作者:Dawn__Z  
这篇文章主要介绍了python2 对excel表格操作,结合完整实例形式分析了Python2 操作Excel表格的读取、写入相关操作技巧,需要的朋友可以参考下

本文实例讲述了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文件:

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python操作Excel表格技巧总结》、《Python文件与目录操作技巧汇总》、《Python文本文件操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • python-docx读取模板文档并填充数据

    python-docx读取模板文档并填充数据

    python-docx 是开源的一个 Python 库,用于读取、创建和更新Microsoft Word 2007+(.docx)文件,下面我们就来看看如何利用python-docx读取模板文档并填充数据吧
    2024-11-11
  • Python生成六万个随机,唯一的8位数字和数字组成的随机字符串实例

    Python生成六万个随机,唯一的8位数字和数字组成的随机字符串实例

    今天小编就为大家分享一篇Python生成六万个随机,唯一的8位数字和数字组成的随机字符串实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • python脚本监听域名证书过期时间并通知消息到钉钉(最新推荐)

    python脚本监听域名证书过期时间并通知消息到钉钉(最新推荐)

    这篇文章主要介绍了python脚本监听域名证书过期时间并通知消息到钉钉(最新推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-11-11
  • Python循环控制详解

    Python循环控制详解

    本文介绍了Python编程语言中关于for循环和if条件控制的一些基本使用,包含了单层循环的退出机制和多层循环的退出机制,使得我们在满足特定条件时,可以直接结束多层循环,需要的朋友可以参考下
    2024-07-07
  • 国产麒麟系统kylin部署python项目详细步骤

    国产麒麟系统kylin部署python项目详细步骤

    这篇文章主要给大家介绍了关于国产麒麟系统kylin部署python项目的相关资料,文中通过代码示例介绍的非常详细,对大家的学习或者工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-09-09
  • 用Python编写脚本使IE实现代理上网的教程

    用Python编写脚本使IE实现代理上网的教程

    这篇文章主要介绍了用Python编写脚本使IE实现代理上网的教程,“著名的”goagent代理也是基于同样原理实现,需要的朋友可以参考下
    2015-04-04
  • Python脚本传参数argparse模块的使用

    Python脚本传参数argparse模块的使用

    这篇文章主要介绍了Python脚本传参数argparse模块的使用,文章围绕argparse模块的相关资料展开具体的使用方法,具有一的参考价值,需要的小伙伴可以参考一下
    2022-03-03
  • 如何解决安装python3.6.1失败

    如何解决安装python3.6.1失败

    在本篇文章里小编给大家整理的是关于安装python3.6.1失败的解决方案,需要的读者们可以跟着学习下。
    2020-07-07
  • 在python中计算ssim的方法(与Matlab结果一致)

    在python中计算ssim的方法(与Matlab结果一致)

    这篇文章主要介绍了在python中计算ssim的方法(与Matlab结果一致),本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • Python绘图之实现绘制极坐标图像

    Python绘图之实现绘制极坐标图像

    这篇文章主要介绍了如何利用python绘制极坐标图像,文中的示例代码讲解详细,具有一定的的参考价值,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-08-08

最新评论