使用python套用excel模板_Python自动化办公Excel-从表中批量复制粘贴数据到新表

1、模块安装

1)cmd模式下:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xlrd

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple openpyxl

2)如果有安装Pycharm,则在程序中操作如下:

菜单栏:File -> Settings -> Project: **.py -> Project INterpreter -> + search xlrd

菜单栏:File -> Settings -> Project: **.py -> Project INterpreter -> + search openpyxl

2、思路步骤

步骤如下:

1.提取“原报表”第8行往下不为空的数据

2.写入到“抽出数据报表”数组中,设置写入内容的格式及边框、行高等,保存

资源下载:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mjc1MDYxMQ==,size_16,color_FFFFFF,t_70#pic_center

1)提取

使用xlrd。读取工作簿,存入wb,然后选取第一个工作表,存入ws。新建一个列表data用于储存获取的数据。然后从第8行(对应索引为0)遍历工作表。将每行的数据放入列表info_list。在写入到数组之前,用if语句设置两个条件:先判断是不是空值,再判断长度是否大于1000mm,才放入总列表data。

import xlrd

file = "汇总.xlsx"

wb = xlrd.open_workbook(file,on_demand=True) # 读取工作簿

ws = wb.sheets()[0] # 选第一个工作表

data = []

title1 = ws.cell(0,0).value.strip() #读取标题,非数字

# print(title1)

for row in range(2, ws.nrows):

col1= ws.cell(row, 0).value

col2 = ws.cell(row, 1).value

col3 = ws.cell(row, 2).value

info_list = [col1, col2, col3]

if info_list[0] != "": # 去除空数据

if col1 >1000:

data.append(info_list)

print(data)

data数据如下:

[[1594.0, 400.0, 38.0], [1045.0, 300.0, 38.0], [2480.0, 149.0, 20.0], [1174.0, 153.0, 20.0], [1450.0, 180.0, 45.0], [1100.0, 90.0, 90.0], [1123.0, 90.0, 90.0], [1155.0, 90.0, 90.0], [1050.0, 53.0, 53.0], [1100.0, 70.0, 45.0], [2050.0, 70.0, 45.0], [2340.0, 70.0, 45.0], [3590.0, 70.0, 45.0]]

2)写入

获取完数据,开始写入统计表。顺便导入“设置单元格格式”的相关的模块。因为数据列表data中全是子列表,所以直接使用append方法整行写入最为方便。数据写完后,需要设置行高,字号,加粗,对齐,单元格边框等。全部设置完后保存数据。

from openpyxl import load_workbook

from openpyxl.styles import Border, Side, PatternFill, Font, GradientFill, Alignment #设置单元格格式

thin = Side(border_style="thin", color="000000")#定义边框粗细及颜色

file = "统计表模板.xlsx"

wb = load_workbook(file)

ws = wb.active

#写入数据

for i in data:

ws.append(i)

#设置字号,对齐,缩小字体填充,加边框

#Font(bold=True)可加粗字体

for row_number in range(2, ws.max_row+1):

ws.row_dimensions[row_number].height = 25 #设置行高

for col_number in range(1,4):

c = ws.cell(row=row_number,column=col_number)

c.font = Font(size=11,bold=True)

c.border = Border(top=thin, left=thin, right=thin, bottom=thin)

c.alignment = Alignment(horizontal="center", vertical="center")

wb.save("统计表.xlsx")

完整代码如下:

import xlrd

file = "汇总.xlsx"

wb = xlrd.open_workbook(file,on_demand=True) # 读取工作簿

ws = wb.sheets()[0] # 选第一个工作表

data = []

title1 = ws.cell(0,0).value.strip() #读取标题,非数字

# print(title1)

for row in range(2, ws.nrows):

col1= ws.cell(row, 0).value

col2 = ws.cell(row, 1).value

col3 = ws.cell(row, 2).value

info_list = [col1, col2, col3]

if info_list[0] != "": # 去除空数据

if col1 >1000:

data.append(info_list)

print(data)

from openpyxl import load_workbook

from openpyxl.styles import Border, Side, PatternFill, Font, GradientFill, Alignment #设置单元格格式

thin = Side(border_style="thin", color="000000")#定义边框粗细及颜色

file = "统计表模板.xlsx"

wb = load_workbook(file)

ws = wb.active

#写入数据

for i in data:

ws.append(i)

#设置字号,对齐,缩小字体填充,加边框

#Font(bold=True)可加粗字体

for row_number in range(2, ws.max_row+1):

ws.row_dimensions[row_number].height = 25 #设置行高

for col_number in range(1,4):

c = ws.cell(row=row_number,column=col_number)

c.font = Font(size=11,bold=True)

c.border = Border(top=thin, left=thin, right=thin, bottom=thin)

c.alignment = Alignment(horizontal="center", vertical="center")

wb.save("统计表.xlsx")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/542670.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在HubSpot是如何应对Fat JAR困境的

在七月底,Spring Boot和Dropwizard分别发布了1.4和1.0版本,它们都是基于Fat JAR的。随着人们更多地采用这些框架和微服务架构,Fat JAR成为了通用的部署机制。\\Fat JAR技术会将Java应用的所有依赖打包到一个bundle之中,便于执行&a…

如何查看本地的崩溃log_过年回家,还怕抢不到票?程序员教你如何抢票

2019年接近尾声,距离春节回家的日子越来越近,26日起,2020年除夕火车票正式开售,抢票大战也进入白热化阶段。是否为某抢票 App 加速而烦恼,是否为车票“秒光而烦恼”。别慌,作为连“对象”都是 new 出来的程…

hashmap转红黑树的阈值为8_面试必考的 HashMap,这篇总结到位了

点击蓝色“JavaKeeper”关注我哟加个“星标”,一起成长,做牛逼闪闪的技术人1 概述HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长.HashMap是非线程安全的,只适用于单线程环…

Failed to start firewalld.service: Unit firewalld.service is masked.

2019独角兽企业重金招聘Python工程师标准>>> FireWall in Centos 7 masked How to resolve the error message belowFailed to issue method call: Unit firewalld.service is masked. The main reason a service is masked is to prevent accidental starting or e…

mysql第二个索引_MySQL高级第二章——索引优化分析

一、SQL性能下降原因1.等待时间长?执行时间长?可能原因:查询语句写的不行索引失效(单值索引、复合索引)CREATE INDEX index_user_name ON user(name);(底层做了一个排序)CREATE INDEX index_user_nameEmail ON user(name,email);查询关联join…

西瓜仿站高手v1.08官方正式版

2019独角兽企业重金招聘Python工程师标准>>> 西瓜仿站高手是一款绿色好用的由追风网络出品的网站模板批量下载软件,西瓜仿站高手是一款仿站工具,仿站神器。软件功能强大,能够帮你轻松帮你下载任意网站、任意模板,并且速…

用hundred造句子_八个有趣的开学破冰游戏,线上线下都能用

知道大家最近都很忙,所以省略开篇,直接上正题——开学“破冰游戏”走起!一、你比划我来猜把词语展示在PPT上,猜词的同学背对PPT,其他同学可以看到词语并且用身体动作把词语表现出来,直到猜词的同学可以把词…

cisco packet tracer路由器配置_【干货】思科交换机路由器怎么配置密码?

今天带大家看看如何在思科的交换机路由器当中配置安全特性,也就是密码的配置方式。在学习配置之前,我们先回顾一下密码相关知识。密码学是研究信息系统安全保密的科学。人类有记载的通信密码始于公元前400年,古希腊人是置换密码学的发明者。密…

codevs3872 邮递员送信(SPFA)

邮递员送信 时间限制: 1 Sec 内存限制: 64 MB提交: 10 解决: 5[提交][状态][讨论版] 题目描述 有一个邮递员要送东西,邮局在节点1.他总共要送N-1样东西,其目的地分别是2~N。由于这个城市的交通比较繁忙,因此所有的道路都是单行的&#xff0…

java上传csv文件上传_java处理csv文件上传示例详解

前言:示例只是做了一个最最基础的上传csv的示例,如果要引用到代码中去,还需要根据自己的业务自行添加一些逻辑处理。readcsvutil工具类package com.hanfengyeqiao.gjb.utils;import java.io.*;import java.util.*;/*** csv工具类*/public cla…

360更新补丁一直提示正在安装_远程利用POC公布|CVE20200796:微软发布SMBv3协议“蠕虫级”漏洞补丁通告...

更多全球网络安全资讯尽在邑安全www.eansec.com0x00 事件描述2020年3月11日,360CERT监测到有海外厂家发布安全规则通告,通告中描述了一处微软SMBv3协议的内存破坏漏洞,编号CVE-2020-0796,并表示该漏洞无需授权验证即可被远程利用&…

字符串的回文子序列个数_计算给定字符串中回文子序列的数量

字符串的回文子序列个数Problem statement: 问题陈述: Given a string you have to count the total number of palindromic subsequences in the giving string and print the value. 给定一个字符串,您必须计算给定字符串中回文子序列的总数并打印该值…

适配接口 java_【Java 设计模式】接口型模式--Adapter(适配器)模式

简介:【Java设计模式】接口型模式–Adapter(适配器)模式Adapter模式的宗旨就是:向客户提供接口,并使用现有的类所提供的服务,以满足客户的需求。 或者说,现在有classA的方法满足客户的部分要求,将另一部分需…

deepinu盘制作工具_u盘启动盘制作工具怎么制作 u盘启动盘制作工具制作方法【详细步骤】...

在电脑城很多技术人员都会使用u盘装系统的方法给用户电脑安装系统,他们是怎么操作的呢?其实很简单,就是通过u盘启动盘来安装系统的。而u盘启动盘是需要用 u盘启动盘制作工具 来制作的。那么问题又来了,u盘启动盘制作工具怎么制作呢?下面就给…

openstack私有云_OpenStack-下一代私有云的未来

openstack私有云The OpenStack project is an open source cloud computing platform for all types of clouds, which aims to be simple to implement, massively scalable, and feature rich. Developers and cloud computing technologists from around the world create t…

freemarker的测试结果框架_java必背综合知识点总结(框架篇)

框架篇一、Struts1的运行原理在启动时通过前端总控制器ActionServlet加载struts-config.xml并进行解析,当用户在jsp页面发送请求被struts1的核心控制器ActionServlet接收,ActionServlet在用户请求时将请求参数放到对应的ActionForm对象中的成员变量中&am…

python图形界面库哪个好_8个必备的Python GUI库

Python GUI 库有很多,下面给大家罗列常用的几种 GUI库。下面介绍的这些GUI框架,能满足大部分开发人员的需要,你可以根据自己的需求,选择合适的GUI库。1. wxPython wxPython 是一个跨平台的 GUI 工具集,是 Python 语言的…

88是python语言的整数类型_Python基础数据类型题

Python基础数据类型 题 考试时间:三个小时 满分100分(80分以上包含80分及格) 1,简述变量命名规范(3分)1.必须是字母,数字,下划线的任意组合。 2.不能是数字开头 3.不能是python中的关…

dcom配置_spring cloud 二代架构依赖组件 全配置放送

一 背景介绍先来看一下我们熟悉的第一代 spring cloud 的组件spring cloud 现在已经是一种标准了,各公司可以基于它的编程模型编写自己的组件 ,比如Netflix、阿里巴巴都有自己的一套通过spring cloud 编程模型开发的分布式服务组件 。Spring Cloud 二代组…

olap 多维分析_OLAP(在线分析处理)| OLAP多维数据集和操作

olap 多维分析In the previous article of OLAP, we have seen various applications of OLAP, Various types of OLAP, advantages, and disadvantages of OLAP. In this article, we will learn about the, 在OLAP的上一篇文章中,我们了解了OLAP的各种应用&#x…