Python_汇总生成统计报表
import xlrd
import xlwt
from xlutils.copy import copy objWb = xlrd.open_workbook(r'C:\Users\IBM\Desktop\新建文件夹\S1-3\7月下旬入库表.xlsx')
objSht = objWb.sheet_by_index(0)
# 定义列表,存储读取的内容
All_Data = []
for Nrow in range(1, objSht.nrows): # nrows 返还sheet行数
Company = objSht.cell(Nrow, 1).value
Price = objSht.cell(Nrow, 3).value
Weight = objSht.cell(Nrow, 4).value
Data = {'Company': Company, 'Weight': Weight, 'Price': Price}
All_Data.append(Data)
# 张三
A_weight = []
A_total_price = []
# 李四
B_weight = []
B_total_price = []
# 王五
C_weight = []
C_total_price = []
# 赵六
D_weight = []
D_total_price = [] for D in All_Data:
# print(D)
if D['Company'] == '张三粮配':
A_weight.append(D['Weight'])
A_total_price.append(D['Price'])
if D['Company'] == '李四粮食':
B_weight.append(D['Weight'])
B_total_price.append(D['Price'])
if D['Company'] == '王五小麦':
C_weight.append(D['Weight'])
C_total_price.append(D['Price'])
if D['Company'] == '赵六麦子专营':
D_weight.append(D['Weight'])
D_total_price.append(D['Price'])
# 格式
Style = xlwt.XFStyle()
# 格式.字体
Font = xlwt.Font()
Font.name = '微软雅黑'
Font.bold = True
Font.height = 18 * 20
Style.font = Font
# 格式.边框
Borders = xlwt.Borders()
Borders.top = xlwt.Borders.THIN
Borders.bottom = xlwt.Borders.THIN
Borders.left = xlwt.Borders.THIN
Borders.right = xlwt.Borders.THIN
Style.borders = Borders
# 格式.对齐
Alignment = xlwt.Alignment()
Alignment.horz = xlwt.Alignment.HORZ_CENTER
Alignment.Vert = xlwt.Alignment.VERT_CENTER
Style.alignment = Alignment
# 格式 Tem_wb = xlrd.open_workbook(r'C:\Users\IBM\Desktop\新建文件夹\S1-3\7月下旬统计表模板.xls',formatting_info= True)
Tem_sheet = Tem_wb.sheet_by_index(0) Result_wb = copy(Tem_wb)
Result_sheet = Result_wb.get_sheet(0)
# print(A_weight)
Result_sheet.write(2, 1, len(A_weight), Style)
Result_sheet.write(2, 2, round(sum(A_weight), 2), Style)
Result_sheet.write(2, 3, round(sum(A_total_price), 2), Style) Result_sheet.write(3, 1, len(B_weight), Style)
Result_sheet.write(3, 2, round(sum(B_weight), 2), Style)
Result_sheet.write(3, 3, round(sum(B_total_price), 2), Style) Result_sheet.write(4, 1, len(C_weight), Style)
Result_sheet.write(4, 2, round(sum(C_weight), 2), Style)
Result_sheet.write(4, 3, round(sum(C_total_price), 2), Style) Result_sheet.write(5, 1, len(D_weight), Style)
Result_sheet.write(5, 2, round(sum(D_weight), 2), Style)
Result_sheet.write(5, 3, round(sum(D_total_price), 2), Style) Result_wb.save(r'C:\Users\IBM\Desktop\新建文件夹\S1-3\7月下旬统计.xls')
Python_汇总生成统计报表的更多相关文章
- 利用c#+jquery+echarts生成统计报表(附源代码)
背景: 因为最近项目要生成报表,经过几轮挑选,最终选择了百度的echarts作为报表基础类库.百度echarts简介请参考 http://echarts.baidu.com/ 虽然echarts功能强 ...
- C# 根据天、周、月汇总统计生成统计报表
先看核心代码: public List<DataEntity> SearchShopSalesReport(DateTimeOffset? dateFrom, DateTimeOffset ...
- statpot:使用mongo+bootstrap+highcharts做统计报表
最近做了一个统计项目,这个统计项目大致的需求是统计接口的访问速度.客户端会调用一个接口来记录接口的访问情况,我的需求就需要分析这些数据,然后做出个统计报表. 需求实现 最初的时候想着每天把这些接口访问 ...
- python制作简单excel统计报表3之将mysql数据库中的数据导入excel模板并生成统计图
python制作简单excel统计报表3之将mysql数据库中的数据导入excel模板并生成统计图 # coding=utf-8 from openpyxl import load_workbook ...
- 说出来你可能不信,我用excel就能做一张高端的统计报表
统计报表是指各级企事业.行政单位按规定的表格形式.内容.时间要求报送程序,自上而下统一布置,提供统计资料的一种统计调查方式.统计报表具有来源可靠.回收率高.方式灵活等特点,是各个基层企业或事业单位填报 ...
- 一个统计报表sql问题
今天朋友问我了一个统计报表的sql问题.我弄了好久.终于算是写出来了.这里记录下. 问题: id--------------name--------------addtime1 ...
- 用SQL实现统计报表中的"小计"与"合计"的方法详解
本篇文章是对使用SQL实现统计报表中的"小计"与"合计"的方法进行了详细的分析介绍,需要的朋友参考下 客户提出需求,针对某一列分组加上小计,合计汇总.网上找 ...
- linux性能监控分析及通过nmon_analyse生成分析报表
nmon是一款分析 AIX 和 Linux 性能的免费工具 nmon 工具还可以将相同的数据捕获到一个文本文件,便于以后对报告进行分析和绘制图形.输出文件采用电子表格的格式 (.csv). 性能介绍 ...
- 考勤输入导入OA平台与考勤统计报表导出功能源代码
注:以某某公司为例,每日签到时间为8点整 每日签退时间为17点30分 规则:公司签到签退时间在OA平台中可以视实际情况调整,当天有请假并通过工作流审批通过为有效,当天因公外出并通过工作流审批通过为 ...
随机推荐
- python基础学习15----异常处理
异常处理,是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件). 1.异常的类型 异常的类型多种多样,常见的异常有: AttributeE ...
- 【转】Java学习---10个测试框架介绍
[原文]https://www.toutiao.com/i6594302925458113027/ JAVA 程序员需要用到 10 个测试框架和库 Java 程序员需要用到十大单元测试和自动化集成测试 ...
- 【汇编】SI DI 的用法
一.汇编语言中,为什么SI和DI不能同时使用汇编 其实你可以想一下,这两个寄存器的意思,SI源变址寄存器,DI目地变址寄存器,既然是变址寄存器,那么他们肯定是在某个地址的基础上进行偏移变化,由此我们就 ...
- Windows 下的文件被占用问题解决
windows下,经常容易出现文件被其他程序占用的现象,令人十分头疼.更头疼的是,还看不到被谁占用. 实际上是有办法看到占用的进程的. 话不多说,以Win10为例: 1.打开资源监视器 a.直接程序栏 ...
- Linux清除用户登录记录和命令历史方法(个人笔记)
清除登陆系统成功的记录 [root@localhost root]# echo > /var/log/wtmp //此文件默认打开时乱码,可查到ip等信息 [root@localhost roo ...
- "==" equals和hashCode的联系和区别
写这篇文章的目的是自己彻底把三者搞清楚,也希望对你有所帮助. 1."=="运算符对与基本类型(int long float double boolean byte char sho ...
- TruncateATable 清除一张表
当我们想删除一张表的全部数据时,我们可以使用 truncate 关键字,但如果要删除的表的主键被引用了,那么就无法执行语句. 1.制作清除数据的工具 ,在 nuget 控制台中输入 Install-P ...
- eclispe快捷键
① Ctrl+Left/Right 向左或向右跳跃一个单词,这是解决横向光标定位速度问题最主要的快捷键!(特别对于喜欢写超过80个字符一行代码的人来说)需要配合使用同样用于同行光标定位的Home/En ...
- 详解动态规划(Dynamic Programming)& 背包问题
详解动态规划(Dynamic Programming)& 背包问题 引入 有序号为1~n这n项工作,每项工作在Si时间开始,在Ti时间结束.对于每项工作都可以选择参加与否.如果选择了参与,那么 ...
- BZOJ3155:Preprefix sum(线段树)
Description Input 第一行给出两个整数N,M.分别表示序列长度和操作个数 接下来一行有N个数,即给定的序列a1,a2,....an 接下来M行,每行对应一个操作,格式见题目描述 Out ...