Python利用openpyxl带格式统计数据(1)- 处理excel数据
统计数据的随笔写了两篇了,再来一篇,这是第三篇,前面第一篇是用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数据的更多相关文章
- Python利用openpyxl带格式统计数据(2)- 处理mysql数据
上一篇些了openpyxl处理excel数据,再写一篇处理mysql数据的,还是老规矩,贴图,要处理的数据截图: 再贴最终要求的统计格式截图: 第三贴代码: 1 ''' 2 #利用openpyxl向e ...
- oracle xmltype导入并解析Excel数据 (三)解析Excel数据
包声明 create or replace package PKG_EXCEL_UTILS is -- Author: zkongbai-- Create at: 2016-07-06-- Actio ...
- 把数据库中的数据制作成Excel数据
把数据库中的数据制作成Excel数据 如果我们在使用Excel的时候,需要把数据库中的数据制作成Excel数据透视表,我们该怎么操作呢?如果数据在数据库中,我们不用把数据导入到工作表中,我们可以直接以 ...
- 数据透视:Excel数据透视和Python数据透视
作者 | leo 早于90年代初,数据透视的概念就被提出,主要的应用场景是处理大量数据的交互式汇总查询,它实现了行或列的移动,使得行可以移到列上,列移到行上,从而根据使用者的诉求取对关注的数据子集进行 ...
- python 利用jieba库词频统计
1 #统计<三国志>里人物的出现次数 2 3 import jieba 4 text = open('threekingdoms.txt','r',encoding='utf-8').re ...
- 小白学 Python 数据分析(7):Pandas (六)数据导入
人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...
- python通过openpyxl操作excel
python 对Excel操作常用的主要有xlwt.xlrd.openpyxl ,前者xlwt主要适合于对后缀为xls比较进行写入,而openpyxl主要是针对于Excel 2007 以上版本进行操作 ...
- 办公室文员必备python神器,将PDF文件表格转换成excel表格!
[阅读全文] 第三方库说明 # PDF读取第三方库 import pdfplumber # DataFrame 数据结果处理 import pandas as pd 初始化DataFrame数据对象 ...
- oracle xmltype导入并解析Excel数据 (一)创建表与序
表说明: T_EXCEL_IMPORT_DATASRC: Excel数据存储表,(使用了xmltype存储Excel数据) 部分字段说明: BUSINESSTYPE: Excel模板类型,一个Exce ...
随机推荐
- RabbitMQ PHP扩展安装
RabbitMQ PHP扩展安装 # 安装rabbitmq-c依赖包 yum install libtool autoconf # 安装rabbitmq-c ( 最好下载 0.5的,0.6安装可能会报 ...
- maven打包时报No compiler is provided in this environment处理
系统:macOS 开发工具:Idea 问题描述:在idea中执行mvn clean install时报No compiler is provided in this environment. Perh ...
- C语言讲义——快速排序
快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序 它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod) 基本思想: 1.先从数列中取出一个数作 ...
- markdown语法和数学公式
目录 Markdown简介 代码块 LaTeX 公式 表格 LaTeX 矩阵公式 Markdown简介 Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格 ...
- spring boot 访问外部http请求
以前 访问外部请求都要经过 要用 httpClient 需要专门写一个方法 来发送http请求 这个这里就不说了 网上一搜全都是现成的方法 springboot 实现外部http请求 是通过F ...
- 第15.45节、PyQt输入部件:QKeySequenceEdit快捷键输入部件简介和使用案例
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.功能简介 Key Sequence Edit输 ...
- 使用PyQt(Python+Qt)+moviepy开发的视频截取、音视频分离、MP4转GIF动图工具免费下载分享
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 在因博文素材需要将软件操作制作成动画时,发现网上相关绿色使用工具都需要 ...
- 利用Python特殊变量__dict__快速实现__repr__的一种方法
在<第8.15节 Python重写自定义类的__repr__方法>.<Python中repr(变量)和str(变量)的返回值有什么区别和联系>.<第8.13节 Pytho ...
- 第11.7节 Python正则表达式的字符串结尾匹配模式及元字符“$”功能介绍
符号"$"表示匹配字符串的结尾,即字符串的结尾满足匹配模式的要求. 在 MULTILINE 模式(搜索标记中包含re.MULTILINE,关于搜索标记的含义请见<第11.2节 ...
- PyQt(Python+Qt)学习随笔:model/view架构中QTableView视图的数据无法显示问题
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 在使用QTableView来显示如下数据时: 在model中插入数据是使用如下类似代码: for c ...