2020-12-08

2023-05-16


代码简介:python读取excel数据,并汇总结果,统计厂商个数,每个厂商的版本个数,提测型号种类,厂商总的测试通过率

import xlrd
import openpyxl
import xlwt
from xlutils.copy import copy
import os
import numpy as np
import pandas as df
from xlutils.copy import copy as xl_copy
from collections import defaultdict

wb=xlrd.open_workbook('Q:\pythonProject1\excel\盘点sun.xlsx')
sheet1=wb.sheet_by_name('梳理表0701-1116')
nrowNum=sheet1.nrows#获取行数
ncolNum=sheet1.ncols#获取列数
for i in range(0,ncolNum):
    if  sheet1.cell_value(0,i) == '厂商':
        factorycolnum=i;
       #print(sheet1.cell_value(0, factorycolnum))
    if sheet1.cell_value(0, i) == '型号':
        modelcolnum = i;
    if sheet1.cell_value(0, i) == '验收测试结果':
        resultcolnum = i;
print("厂商列号:%d 型号列号:%d 测试结果的列号:%d" % (factorycolnum,modelcolnum,resultcolnum))

print("1、加载原有的工作簿,创建新的表格,将厂商,型号,测试结果写入新的表格中")
newwb=copy(wb)#在原有表的基础上新增sheet,用来存储汇总的数据,修改原来的工作簿需要先复制
newsheet=newwb.add_sheet('年终数据盘点')#添加新的工作簿
newsheet.write(0,0,"厂商")
newsheet.write(0,1,"型号")
newsheet.write(0,2,"测试结果")
#从原有的表格中读取厂商,型号,测试验收结果
for j in range(1, nrowNum):
    newsheet.write(j, 0, sheet1.cell_value(j,factorycolnum))
    newsheet.write(j, 1, sheet1.cell_value(j, modelcolnum))
    newsheet.write(j, 2, sheet1.cell_value(j, resultcolnum))
print("2、基本信息读写完成")
newwb.save('Q:\pythonProject1\excel\盘点sun.xls')  # 读取数据不需要保存,修改需要保存为xx.xls文件

wb=xlrd.open_workbook('Q:\pythonProject1\excel\盘点sun.xls')
dataSheet=wb.sheet_by_name('年终数据盘点')
newwb=copy(wb)
newws1=newwb.get_sheet('年终数据盘点')
r=0
l=[]#创建临时列表
while r<dataSheet.nrows-1:
    r+=1
    l+=[dataSheet.row_values(r)]
# print(l)
print("3、对l的的数据进行排序")

#sorted(可迭代的对象,使用函数来确定比较方式,reverse排序的顺序,true为反向排序)
l1=sorted(l,key=lambda x:(str(x[0]),str(x[1])))
print(l1)
print('将排序后的数据,重新写入表格')
n=0
for v in l1:
    n+=1
    newws1.write(n,0,v[0])
    newws1.write(n,1,v[1])
    newws1.write(n,2,v[2])
newwb.save('Q:\pythonProject1\excel\盘点sun.xls')

print("4、对数据进行统计,并把统计结果写入excel")

wb=xlrd.open_workbook('Q:\pythonProject1\excel\盘点sun.xls',formatting_info=True)
dataSheet=wb.sheet_by_name('年终数据盘点')
newwb=copy(wb)
# newsheet=newwb.add_sheet('年终数据盘点1')
newws2=newwb.get_sheet('年终数据盘点')
print('统计数据')
totalTestNum=dataSheet.nrows
print('共提测:%d ' % totalTestNum)
# print('读取每一行,统计将厂商去重后的个数')
r=0;lfactory=[];lmodel=[]
while r<dataSheet.nrows-1:
    lfactory += [dataSheet.cell_value(r, 0)]
    lmodel += [dataSheet.cell_value(r, 1)]
    r+=1
b = set()
print('共对接厂商个数:%d' % len(set(lfactory)))
print('共对接产品型号个数:%d' % len(set(lmodel)))

i=0;d=dict()
dd=dict()
while i<totalTestNum:
    key1= dataSheet.cell_value(i, 0)
    val1= dataSheet.cell_value(i, 1)
    val2 = dataSheet.cell_value(i, 2)
    if key1 in d.keys():
        d[key1]+=[val1]
        dd[key1]+= [val2]
    else:
        d[key1]=[val1]
        dd[key1] = [val2]
    i+=1
print('将厂商名字,提测版本数,提测型号种类,通过率写入excel')
hang1=1;
newws2.write(0, 4, '厂商');newws2.write(0, 5, '提测版本数');newws2.write(0, 6, '提测型号种类')
newws2.write(0, 7, '提测通过率')
for k1 in d:#将厂商
  # print(k1,len(d[k1]),len(set(d[k1])))
  newws2.write(hang1,4,k1)
  newws2.write(hang1,5,len(d[k1]))
  newws2.write(hang1,6,len(set(d[k1])))
  hang1+=1
#计算每个厂商的通过率
hang2=1
floatdata=0.00
for k2 in dd:
   floatdata=dd[k2].count('已通过') / len(dd[k2])
   newws2.write(hang2, 7, '%.2f' %  floatdata)#写入的数据自动变成整数了,需要调整
   print('%.2f' % floatdata)
   hang2+=1
newwb.save('Q:\pythonProject1\excel\盘点sun.xls')

  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2020-12-08 的相关文章

  • 2020-10-22

    用C 实现MVC xff08 Model View Control xff09 模式介绍 益处 在我们的开发项目中使用MVC xff08 Model View Control xff09 模式的益处是 xff0c 可以完全降低业务层和应用表
  • 9、docker+k8s+kubesphere:Kubernetes安装(2020-08-02更新)

    9 docker 43 k8s 43 kubesphere Kubernetes安装 官网说明一定详细查看 span class token punctuation span 本文用的是2 1 1 span class token punc
  • 2020.9.14中国地质大学新生入学教育

    今天我听到的最关键的一点就是专业型硕士可以两年毕业 xff0c 而且没有学术要求 学硕正常毕业也没有学术要求 xff0c 学硕如果两年毕业就有学术要求 还有我这种定向的是享受不了校招的 xff0c 你自己注意了 下面是当时写的一些笔记 xf
  • 2020年acwifi拆过的无线路由器配置汇总

    转载自 xff1a https www smyz net luyouqi 10990 html 2020年acwifi拆过的无线路由器配置汇总 2020 12 31 22 05 整合编辑 xff1a 64 数码一族 acwifi只是一个人
  • 2020-10-19

    OpenMP 使用介绍 OpenMP 基本概念 Open Multi Processing的缩写 xff0c 是一个应用程序接口 xff08 API xff09 xff0c 可用于显式指导多线程 共享内存的并行性 在项目程序已经完成好的情况
  • anaconda3 2020.07_Anaconda3 &amp; isce2

    Anaconda3安装 参考 xff1a https www digitalocean com community tutorials how to install anaconda on ubuntu 18 04 quickstart w
  • 【新书推荐】【2020】无人机系统设计

    从系统角度全面介绍无人飞机系统的设计和分析 Provides a comprehensive introduction to the design and analysis of unmanned aircraft systems with
  • 00无人机简介以及课程介绍2020-07-03

    本系列的笔记全部来自于开课吧课堂的直播视频 xff0c 作为一个学生 xff0c 我只是进行有目的性的记录和总结 xff0c 而非博主我自己想出来写的 xff01 xff01 xff01 望周知 xff01 xff01 xff01 目录 一
  • 2020-09-29

    广西 河池学院 广西高校重点实验室培训基地系统控制与信息处理重点实验室 本篇博客来自河池学院 智控无人机小组 写作时间 xff1a 2020 9 29 刚刚接触STM32f103 xff0c 简单了解了基本内容 有48个引脚 xff0c 其
  • CVPR 2020 论文大盘点-语义分割篇

    图像分割应用广泛 xff0c 在CVPR 2020 论文中所占比例很高 xff0c 可说是一大热门 xff0c 有110多篇相关论文 xff0c 本文盘点CVPR 2020 所有语义分割 xff08 Semantic Segmentatio
  • 2020计算机视觉领域顶级会议时间表

    CVPR IEEE Conference on Computer Vision and Pattern Recognition Location United States Date June 2020 Deadline TBD about
  • 手把手教你复现顶会论文 —— RandLA-Net (CVPR 2020 Oral)

    前言 代码库 xff1a Pytorch 或者 Tensorflow Tensorflow1 11 作者代码库链接 xff1a https github com QingyongHu RandLA Net Pytorch 1 4 代码库链接
  • 2020总结

    2020年可以说是我开始工作的第二年了 在第一年中我可以说了解了工作和组里的基本情况 xff0c 而这第二年就开始真正的加深学习了 还是以时间线一点点的慢慢讲吧 春节前我们一边工作一边准备年会 我们公司有个惯例那就是让每年最新入职的员工来主
  • 8个树莓派超级计算机_【2020-8-14】树莓派部署t265追踪摄像头实现无人机室内视觉定位...

    本文使用 Zhihu On VSCode 创作并发布 在之前的文章中 xff0c 我们已经成功在树莓派 xff08 ubuntu mate 18 04 xff09 上部署了T265的追踪摄像头 本文将利用MAVROS协议 xff0c 将T2
  • 自然资源部卫星遥感应用报告(更新至2020)

    自然资源部每年7月份发布上一年度的自然资源部卫星遥感应用报告 xff0c 是对自然资源领域典型应用的总结 xff0c 对于遥感应用探索有一定参考 自然资源部卫星遥感应用报告 2020版 自然资源部卫星遥感应用报告 2019版 摘录2020年
  • 2020.2.22 排位赛 G - Bucket Brigade(BFS)

    Bucket Brigade 题面 题目分析 BFS模板题 代码 span class token macro property span class token directive keyword include span span cl
  • 2020.10.22项目调试记录

    1 对于ROS项目 xff0c catkin make之后找不到可执行的launch文件 xff0c source devel setup bash之后还是无效 最后发现是对应的CMakeLists txt文件中某个语句的位置问题导致的 x
  • 2020,会成为区块链在中国的元年吗?

    2020 会成为区块链在中国的元年吗 文章目录 2020 会成为区块链在中国的元年吗 区块链扫盲 区块链释义 区块链历史 区块链的特点 什么是中心化 什么是去中心化 程序员眼中的区块链 区块链的软分叉与硬分叉 以太坊与以太经典 金本位与银本
  • 2020年“华为杯”第十七届中国研究生数学建模竞赛B题心得(满纸荒唐言,一把辛酸泪)

    满纸荒唐言 一把辛酸泪 都云作者痴 谁解其中味 纪念2016 2020所有的数学建模论文 古人说得好 书到用时方恨少 事非经过不知难 做数学建模的我 方法用时真恨少 建模经过更知难 2020年9 17 21 应该是我最后一次参加数学建模比赛
  • 我的 2020 总结:跌宕起伏

    文章目录 复盘与展望 复盘与展望 2020总结 2021计划 个人 生理健康 55kg前半年熬夜较多眼睛干涩 眼睑有障碍 经常热敷毛巾 蒸汽眼罩滴眼药水 坚持锻炼 俯卧撑 开合跳 心理健康 6月份左右申请过劳动仲裁 迟迟拿不到钱比较着急 找

随机推荐

  • OpenStack安装相关问题及解决方法

    OpenStack排错总结 1 AMQP Server on controller 5672 is unreachable 解决方法 xff1a iptables I INPUT p tcp dport 5672 j ACCEPT 2 un
  • WSL2迁移方法

    WSL是Windows下的Linux子系统 xff0c 可以代替虚拟机来运行Linux系统 xff0c 占用资源少 xff0c 使用方便 xff0c 下面说一下如何对已发布子系统进行迁移 一种情况是针对同一个系统 xff0c 更换安装的位置
  • 将Word 2010的公式转换成MathType公式

    现在越来越多的人在文档中编辑公式的时候会选择MathType来编辑 xff0c 因为它包含有众多的数学符号和模板 xff0c 编辑公式时非常方便 但是也有一些人在编辑公式时没有使用MathType公式编辑器 xff0c 直接使用Word中自
  • Paraview与VTK学习笔记(五)

    上一节最后执行到 xff1a this gt GetRenderWindow gt Render 也就是执行到了vtkRenderWindow Render 了 xff0c 我们可以看到这个函数是告诉这个RenderWindow下的每一个r
  • cf1214A A. Optimal Currency Exchange

    A Optimal Currency Exchange time limit per test1 5 seconds memory limit per test512 megabytes inputstandard input output
  • HTTP 413 Request Entity Too Large(Payload Too Large)

    原因 上传文件时 xff0c 请求参数过大 xff0c 导致超出服务端限制 客户端发送的实体主体部分比服务器能够或者希望处理的要大 解决 Nginx默认最大能够上传1MB文件 xff0c 打开nginx conf在http 中 xff0c
  • 常见服务默认端口

    服务端口FTP xff08 File Transfer Protocol xff0c 文件传输协议 xff09 21端口SSH xff08 Secure Shell Protocol xff0c 安全外壳协议 xff09 22端口Telne
  • linux环境下交叉编译arm架构jpeglib

    1 官网下载jpeglib源码 下载地址 http www ijg org 选择目前最新的版本jpegsrc v9c tar gz 2 配置 configure prefix span class token operator 61 spa
  • python批处理将图片进行放大实例代码

    最近处理一些规格不一的照片 xff0c 需要修改成指定尺寸便于打印 xff0c 本篇文章主要给大伙介绍关于Python批量处理将图片进行放大的相关资料 xff0c 文中通过实例代码介绍的非常详细 xff0c 需要的伙伴们可以参考下 pyth
  • 一些必不可少的Sublime Text 2插件

    中文原文 xff1a 一些必不可少的sublime text 2插件 整理自 xff1a Essential Sublime Text 2 Plugins and Extensions 请尊重版权 xff0c 转载请注明来源 xff0c 多
  • linux系统安装Confluence

    1 使用docker安装Confluence容器 docker run d name confluence p 8090 8090 user root root cptactionhank atlassian confluence late
  • Ubuntu 20.04 安装STM32开发环境 (Ubuntu+STM32CubeMX + Vscode+Makefile+Openocd)

    小记 xff1a 最近在学习I MX6U和Zynq比较多 xff0c 又都是在linux系统下 xff0c 然后又不想丢下STM32单片机 xff0c 所以就想到了可不可以在Ubuntu操作系统中编写STM32的代码 xff0c 来替代Wi
  • rust 介绍及开发环境配置(linux+windows)

    本文以windows或linux桌面作为开发环境 注意 xff1a rust需要c的编译器 rustup是官方的 xff0c 会安装cargo包管理 xff0c 这个cargo通常会伴随rust开发的全过程 一 介绍 官网链接 xff1a
  • 打开.data文件的步骤

    老师最近给了一组 data格式的文件 xff0c 当我直接强行改为 csv或者 xls文件再使用Python打开 xff0c 发现数据在Python中只有一列 xff0c 后面无法对数据进行索引 xff0c 在搜了一些方法后 xff0c 分
  • Week2 实验 A - 化学 Gym - 270437A

    题目 甄别烷烃基的类别 假设如上图 xff0c 这个烷烃基有6个原子和5个化学键 xff0c 6个原子分别标号1 6 xff0c 然后用一对数字 a b 表示原子a和原子b间有一个化学键 这样通过5行a b可以描述一个烷烃基 输入第一行为数
  • cf1214B B. Badges

    B Badges time limit per test1 second memory limit per test512 megabytes inputstandard input outputstandard output There
  • OpenWrt无线桥接同网段主路由的方法

    OpenWrt无线桥接同网段主路由的方法 注 xff1a 有些版本的openwrt需要将DNS转发关闭 xff0c 否则无法上网
  • mybatis-sql语句莫名其妙被加上limit分页条件或未执行查询条件

    1 背景 在优化代码 xff0c 查询sql执行情况时 xff0c 突然发现写的查询条件突然发现被加了limit参数 以为遇到了bug xff0c 查了半天 结果是同事在另一业务代码里查询时用了开启了分页 xff0c 但后面业务其实没用到
  • 2020-11-03

    ios工作层设备 一层 xff08 物理层 xff09 xff1a 网卡 集线器 中继器 二层 xff08 数据链路层 xff09 xff1a 网桥 交换机 xff08 暴露真实mac地址 xff09 三层 xff08 网络层 xff09
  • 2020-12-08

    代码简介 xff1a python读取excel数据 xff0c 并汇总结果 xff0c 统计厂商个数 xff0c 每个厂商的版本个数 xff0c 提测型号种类 xff0c 厂商总的测试通过率 import xlrd import open