统计数据的随笔写了两篇了,再来一篇,这是第三篇,前面第一篇是用xlwt写excel数据,第二篇是用xlwt写mysql数据。先贴要处理的数据截图:

再贴最终要求的统计格式截图:

第三贴代码:

 1 '''
2 #利用openpyxl向excel模板写入数据
3 '''
4 #首先写本地excel的
5 import xlwt
6 import xlrd
7 import openpyxl
8
9 #提取数据
10 xlsx = xlrd.open_workbook("要处理的数据表路径/xxx.xlsx")
11 table = xlsx.sheet_by_index(0)
12
13 #空列表,用以存储数据
14 all_data = []
15
16 #循环,读取表格的每个单元格
17 for n in range(1, table.nrows):
18 date = table.cell_value(n, 0)
19 company = table.cell_value(n, 1)
20 province = table.cell_value(n, 2)
21 price = table.cell_value(n, 3)
22 weight = table.cell_value(n, 4)
23 #print(company,price,weight)
24 #开始提取我们需要的数据并存储到字典
25 data = {'company':company, 'price':price, 'weight':weight}
26 #print(data)
27 #将上面字典的每一项以追加的方式追加到空列表all_data
28 all_data.append(data)
29
30 #print(all_data,type(all_data))
31
32 #开始从字典里读取数据
33 a_weight = [] #存储张三粮配每车重量的列表
34 a_total_price = [] #存储张三粮配每车总价格的列表
35 b_weight = []
36 b_total_price = []
37 c_weight = []
38 c_total_price = []
39 d_weight = []
40 d_total_price = []
41 for i in all_data:
42 if i['company'] == "张三粮配":
43 a_weight.append(i['weight'])
44 a_total_price.append(i['weight'] * i['price'])
45 if i['company'] == "李四粮食":
46 b_weight.append(i['weight'])
47 b_total_price.append(i['weight'] * i['price'])
48 if i['company'] == "王五小麦":
49 c_weight.append(i['weight'])
50 c_total_price.append(i['weight'] * i['price'])
51 if i['company'] == "赵六麦子专营":
52 d_weight.append(i['weight'])
53 d_total_price.append(i['weight'] * i['price'])
54 #开始按表格要求的数据细化数据
55 #首先是张三的
56 a_che = len(a_weight)
57 a_dun = sum(a_weight)
58 a_sum_price = sum(a_total_price)
59 #李四
60 b_che = len(b_weight)
61 b_dun = sum(b_weight)
62 b_sum_price = sum(b_total_price)
63 #王五
64 c_che = len(c_weight)
65 c_dun = sum(c_weight)
66 c_sum_price = sum(c_total_price)
67 #赵六
68 d_che = len(d_weight)
69 d_dun = sum(d_weight)
70 d_sum_price = sum(d_total_price)
71
72 #开始用openpyxl导入模板
73 tem_workbook = openpyxl.load_workbook("模板路径/统计表_openpyxl.xlsx") #这里注意是xlsx格式的
74 #获取工作表
75 tem_sheet = tem_workbook['Sheet1'] #这里获取的工作表就是工作簿里的第一个表,表名看清楚
76 #开始写入数据
77 #写张三的,张三的在第三行第二到第四列
78 tem_sheet['B3'] = a_che #在第三行第二列写入总车数
79 tem_sheet['C3'] = a_dun #在第三行第三列写入总吨数
80 tem_sheet['D3'] = a_sum_price #在第三行第四列写入总价格
81 #开始写李四的,李四在第四行,第二到第四列
82 tem_sheet['B4'] = b_che
83 tem_sheet['C4'] = b_dun
84 tem_sheet['D4'] = b_sum_price
85 #开始写王五,王五的在第五行,第二到第四列
86 tem_sheet['B5'] = c_che
87 tem_sheet['C5'] = c_dun
88 tem_sheet['D5'] = c_sum_price
89 #开始写赵六,赵六的在第五行,第二到第四列
90 tem_sheet['B6'] = d_che
91 tem_sheet['C6'] = d_dun
92 tem_sheet['D6'] = d_sum_price
93
94 #保存工作簿
95 tem_workbook.save('路径/2020-11-04-openpyxl-excel.xlsx')

最后贴效果截图:

Python利用openpyxl带格式统计数据(1)- 处理excel数据的更多相关文章

  1. Python利用openpyxl带格式统计数据(2)- 处理mysql数据

    上一篇些了openpyxl处理excel数据,再写一篇处理mysql数据的,还是老规矩,贴图,要处理的数据截图: 再贴最终要求的统计格式截图: 第三贴代码: 1 ''' 2 #利用openpyxl向e ...

  2. oracle xmltype导入并解析Excel数据 (三)解析Excel数据

    包声明 create or replace package PKG_EXCEL_UTILS is -- Author: zkongbai-- Create at: 2016-07-06-- Actio ...

  3. 把数据库中的数据制作成Excel数据

    把数据库中的数据制作成Excel数据 如果我们在使用Excel的时候,需要把数据库中的数据制作成Excel数据透视表,我们该怎么操作呢?如果数据在数据库中,我们不用把数据导入到工作表中,我们可以直接以 ...

  4. 数据透视:Excel数据透视和Python数据透视

    作者 | leo 早于90年代初,数据透视的概念就被提出,主要的应用场景是处理大量数据的交互式汇总查询,它实现了行或列的移动,使得行可以移到列上,列移到行上,从而根据使用者的诉求取对关注的数据子集进行 ...

  5. python 利用jieba库词频统计

    1 #统计<三国志>里人物的出现次数 2 3 import jieba 4 text = open('threekingdoms.txt','r',encoding='utf-8').re ...

  6. 小白学 Python 数据分析(7):Pandas (六)数据导入

    人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...

  7. python通过openpyxl操作excel

    python 对Excel操作常用的主要有xlwt.xlrd.openpyxl ,前者xlwt主要适合于对后缀为xls比较进行写入,而openpyxl主要是针对于Excel 2007 以上版本进行操作 ...

  8. 办公室文员必备python神器,将PDF文件表格转换成excel表格!

    [阅读全文] 第三方库说明 # PDF读取第三方库 import pdfplumber # DataFrame 数据结果处理 import pandas as pd 初始化DataFrame数据对象 ...

  9. oracle xmltype导入并解析Excel数据 (一)创建表与序

    表说明: T_EXCEL_IMPORT_DATASRC: Excel数据存储表,(使用了xmltype存储Excel数据) 部分字段说明: BUSINESSTYPE: Excel模板类型,一个Exce ...

随机推荐

  1. RabbitMQ PHP扩展安装

    RabbitMQ PHP扩展安装 # 安装rabbitmq-c依赖包 yum install libtool autoconf # 安装rabbitmq-c ( 最好下载 0.5的,0.6安装可能会报 ...

  2. maven打包时报No compiler is provided in this environment处理

    系统:macOS 开发工具:Idea 问题描述:在idea中执行mvn clean install时报No compiler is provided in this environment. Perh ...

  3. C语言讲义——快速排序

    快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序 它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod) 基本思想: 1.先从数列中取出一个数作 ...

  4. markdown语法和数学公式

    目录 Markdown简介 代码块 LaTeX 公式 表格 LaTeX 矩阵公式 Markdown简介 Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格 ...

  5. spring boot 访问外部http请求

    以前 访问外部请求都要经过 要用 httpClient  需要专门写一个方法  来发送http请求   这个这里就不说了 网上一搜全都是现成的方法 springboot 实现外部http请求 是通过F ...

  6. 第15.45节、PyQt输入部件:QKeySequenceEdit快捷键输入部件简介和使用案例

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.功能简介 Key Sequence Edit输 ...

  7. 使用PyQt(Python+Qt)+moviepy开发的视频截取、音视频分离、MP4转GIF动图工具免费下载分享

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 在因博文素材需要将软件操作制作成动画时,发现网上相关绿色使用工具都需要 ...

  8. 利用Python特殊变量__dict__快速实现__repr__的一种方法

    在<第8.15节 Python重写自定义类的__repr__方法>.<Python中repr(变量)和str(变量)的返回值有什么区别和联系>.<第8.13节 Pytho ...

  9. 第11.7节 Python正则表达式的字符串结尾匹配模式及元字符“$”功能介绍

    符号"$"表示匹配字符串的结尾,即字符串的结尾满足匹配模式的要求. 在 MULTILINE 模式(搜索标记中包含re.MULTILINE,关于搜索标记的含义请见<第11.2节 ...

  10. PyQt(Python+Qt)学习随笔:model/view架构中QTableView视图的数据无法显示问题

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 在使用QTableView来显示如下数据时: 在model中插入数据是使用如下类似代码: for c ...