python操作电子表格_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文件:

oftpaf3zwll.png

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

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

本文标题: python2 对excel表格操作完整示例

本文地址: http://www.cppcns.com/jiaoben/python/301254.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值