openpyxl

【python接口自动化】- openpyxl读取excel数据

青春壹個敷衍的年華 提交于 2020-08-14 09:05:00
前言:目前我们进行测试时用于存储测试数据的软件几乎都是excel,excel方便存储和管理数据,读取数据时也比较清晰,测试时我们需要从excel从读取测试数据,结束后还需把测试结果写入到excel中,读取这一动作以往都是通过人工来操作,学会使用openpyxl后,就可以实现自动化地读取数据,解放双手。 openpyxl简单介绍 ​ openpyxl是一个开源项目,它是一个用于读取/写入Excel 2010文档(如 xlsx 、 xlsm 、 xltx 、 xltm 文件 )的Python库,如果要处理更早格式的Excel文档( xls ),需要用到其它库(如:xlrd、xlwt等),这是openpyxl比较其他模块的不足之处。openpyxl是一款比较综合的工具,不仅能够同时读取和修改Excel文档,而且可以对Excel文件内单元格进行详细设置,包括单元格样式等内容,甚至还支持图表插入、打印设置等内容。 ​ python中与excel操作相关的模块: 📔 xlrd库:从excel中读取数据,支持xls、xlsx格式 📔 xlwt库:对excel进行修改操作,但不支持对xlsx格式的修改 📔 xlutils库:在xlwt和xlrd中,对一个已存在文件进行修改 📘 openpyxl库:主要针对xlsx格式的excel进行读取和编辑 openpyxl的安装 pip install

Python杀死了Excel|自动更新表格,告别繁琐

不羁的心 提交于 2020-08-13 08:15:32
大家好,又到了Python办公自动化专题。 今天我们讲解的案例是如何使用Python自动更新Excel表格,简单来说就是 每天都会对Excel中多个sheet进行更新,需要操作完后可以用程序完成第一张sheet 汇总表的更新 ,大概就是这样👇 当然实现这一功能可以使用VBA或者Excel中的其他操作,但是查了相关操作略显复杂,现在我们使用Python来完成,主要涉及以下操作: os、glob 模块处理文件 Pandas 处理多个表格 openpyxl 调整Excel样式 创建多个随机数据 为了尽可能模拟读者的生产环境多了这一步。首先我们先用Python来创建一些随机数据, 数据已经充分则可以跳到下一步骤 。 我们需要把这个excel文件命名好放在桌面的data文件夹中 from openpyxl import load_workbook import os import glob import random def GetDesktopPath(): return os.path.join(os.path.expanduser("~"), 'Desktop') # 调用glob可以利用通配符获取指定命名格式的文件 path = glob.glob(f'{GetDesktopPath()}/data/*.xls*')[0] workbook = load_workbook

Python 读写excel Part1

主宰稳场 提交于 2020-08-13 06:47:19
背景 有很多朋友对Python处理excel很感兴趣,虽然我不是这方面的专家,如果用C# openxl 是分分钟搞定的事情,再次点用Npoi也行,Python则完全陌生。 目标 既然以学习为目标去完成这件事,那么就不必太复杂(复杂我也做不来),就假设我们是在做销售系统吧。如果不专业请轻喷。 一份Excel的产品单,一份客户单,一份订单,字段简单点。 从头开始生成 一,工具 既然使用Python,当然要介绍一下工具库: 主要有openpyxl、xlwt、xlrd、Pandas(这是真的可以)、xlsxwriter 先来分析对比一波 1、Openpyxl 优势:快速、高效地读写Excel,可控制大部分Excel元素,并且写入时可以贴入公式 劣势:对初学者非常不友好,属性超级多,并且按xml格式控制;再来样式只能定义一次,修改样式就得先复制一份再重新构造,工作量几何级上升 2、xlsxwriter 专门用于写数据的方法 优势:快速,可控制大部分样式,公式只能以字符串处理,写数据以xy定位或单元格命名为主 劣势:没有毒没有毒没有毒,所以,千万别用同一份excel文档进行处理(我就吃了这个亏,好好几十万条记录被清洗一空),暂时不知道怎么追加到原文档后添加新sheet 3、xlrd、xlwt 可读写的excel库 优势:基本上用来读excel数据,非常精准、数据类型清晰 劣势:写明显很慢

Python+Excel+Word一秒制作百份合同

那年仲夏 提交于 2020-08-12 14:37:57
  前言   大家好,又到了Python办公自动化系列。   今天我们继续分享一个真实的办公自动化需求:如何使Python+Excel+Word批量生成指定格式内容的合同。   主要涉及的知识点有:openpyxl模块的综合运用与Word文档的两种遍历逻辑。   需求描述   你是乙方建筑公司,手上有一份空白合同模板的Word文件,如下图:         另外还有一份Excel合同信息表,其中是所有甲方(发包人)在合同中需要填写的内容      可见一行为一个公司的全部信息,现在需要把Excel中每一个公司的信息填入空白Word合同模板中,生成各公司的合同,最终结果如下         步骤分析   原本我们需要将Excel汇总表中每一行的信息填进word模板中,生成相应的合同。   现在我们需要交给Python来实现,就引出了一个问题:程序如何知道要将某个信息填到哪个下划线? 为了解决这个问题,我们需要对模板进行修改。   即将下划线改成某种标识,让程序可以看到标识就明白此处应该放什么信息,这里采取的策略是:将需要填写的下划线改成汇总表中的列名,即下图所示      这样程序就可以识别需要填写什么内容了。所谓的识别在这里可以换一个特别简单的词,即文本替换。只要检索到#xxxx#(excel中的列名),把这个替换成具体的信息就可以了。   出于这种策略,列名就需要用#xxxx

Python操作Word与Excel并打包

心不动则不痛 提交于 2020-08-12 14:07:11
安装模块 # Word操作库 pip install docx # Excel操作库 pip install openpyxl # 打包exe工具 pip install pyinstaller Word操作 参考地址: https://python-docx.readthedocs.io/en/latest/ 注意事项 只能对openxml规格的docx格式操作 Word内部结构 # 有时候通过公开的方法无法取到数据时,可以考虑用内部的xml结构处理 from docx import Document doc= Document(path) body_element = doc._body._body # 显示文档内部结构 print(body_element.xml) 实例:获取文档目录 #获取xml的命名空间 def xpath_ns(tree): "get xml namespace" nsmap = dict((k, v) for k, v in tree.nsmap.items() if k) return nsmap doc= Document(path) body_element = doc._body._body ns= xpath_ns(body_element) # 获取目录所在节点 links = body_element.xpath('./w:p/w

Python编程快速上手 让繁琐工作自动化PDF高清完整版免费下载|百度云盘

筅森魡賤 提交于 2020-08-11 20:05:39
百度云盘:Python编程快速上手 让繁琐工作自动化PDF高清完整版免费下载 提取码:6msq 内容简介 如今,人们面临的大多数任务都可以通过编写计算机软件来完成。Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。通过Python编程,我们能够解决现实生活中的很多任务。 本书是一本面向实践的Python编程实用指南。本书的目的,不仅是介绍Python语言的基础知识,而且还通过项目实践教会读者如何应用这些知识和技能。本书的首部分介绍了基本Python编程概念,第二部分介绍了一些不同的任务,通过编写Python程序,可以让计算机自动完成它们。第二部分的每一章都有一些项目程序,供读者学习。每章的末尾还提供了一些习题和深入的实践项目,帮助读者巩固所学的知识。附录部分提供了所有习题的解答。 本书适合任何想要通过Python学习编程的读者,尤其适合缺乏编程基础的初学者。通过阅读本书,读者将能利用强大的编程语言和工具,并且会体会到Python编程的快乐。 作者简介 Al Sweigart 是一名软件开发者,还教小孩和成人编程。他为初学者写了几本Python 书籍,包括《Python 密码学编程》、《Python 游戏编程快速上手》和《Python 和Pygame 游戏开发指南》。 目录 第一部分Python编程基础 第1章 Python基础 3 1.1 在交互式环境中输入表达式

从 Excel 到 Python

*爱你&永不变心* 提交于 2020-08-11 11:54:23
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 在 2016 年的 Build 大会上,微软宣布全球有 12 亿人在使用 Excel,而在同一年,全球的人口为 74 亿。也就是说,使用 Excel 的人占全球人口的 16.2%。 2019 年的一份报告( https://slashdata-website-cms.s3.amazonaws.com/sample_reports/ZAamt00SbUZKwB9j.pdf )显示,Python 拥有 820 万活跃开发者,占全球人口的 0.001%。 从这些数据可以看出,增强 Excel 和 Python 之间的交互性对我们是有好处的,这为更多人打开了一扇使用 Python 工具的大门。 Python 在 Excel 前端方面的机会是巨大的。在本文中,我们将分享如何实现一个“典型的”财务 Excel 表格。 先工具,后 Excel 在几乎所有我能想到的场景中,通常是先写 Python 代码,不过必须要保持数据“输入”格式的灵活性。 改变输入数据集格式不应该影响到代码 假设我们使用 Pandas 读取一个或两个 CSV/Excel 表格,可能会依赖一组给定的列名。 如果有数千行这样的代码,我们就依赖了很多硬编码的列名,当我们试图使用 Excel 动态输入列名时,就会遇到问题。 因此

Read dataframe split by nan rows and extract specific columns in Python

僤鯓⒐⒋嵵緔 提交于 2020-08-10 22:49:22
问题 I have a example excel file data2.xlsx from here, which has a Sheet1 as follows: Preprocess: The columns 2018, 2019, 2020, num are object type, which I need to convert to float: cols = ['2018', '2019', '2020', 'num'] df[cols].replace('--', np.nan, regex=True).astype(float) Also I need to extract city names from bj, sh, gz, sz from 2019-bj-price-quantity, 2019-sh-price-quantity, 2019-gz-price-quantity, 2019-sz-price-quantity pattern = '|'.join(['2019-', '-price-quantity']) df['city'] = df[

这所985大学宣布调查结果:论文抄袭事实成立!撤销其硕士学位!

孤者浪人 提交于 2020-08-10 02:13:31
点击“ 开发者技术前线 ”,选择“星标🔝” 在看|星标|留言, 真爱 来源:中国青年报 近日,电子科技大学宣布了一项调查结果: 该校2005级硕士研究生贾桂林硕士学位论文抄袭事实成立,决定撤销其硕士学位。 据澎湃新闻6月报道,有网友反映称,电子科技大学电子与通信工程领域2007届毕业生贾桂林2007年11月提交的硕士学位论文《基于CAN总线的汽车组合仪表研究》和武汉理工大学信息工程学院通信与信息系统专业2007届毕业生付胜波2007年4月提交的硕士学位论文《基于CAN总线的汽车组合仪表研究》两篇论文高度雷同。 经比对发现,上述两篇论文从标题、摘要到目录都几乎完全一致。且对比来看,付胜波硕士学位论文中参考文献的引用信息标注更为详细。 △ 付胜波论文(左)和贾桂林论文(右)比对。 但是, 武汉理工大学付胜波 的硕士学位论文 比电子科技大学贾桂林 的硕士学位论文 提交早了7个月 。 涉嫌抄袭者:在职研究生要求不是很高 付胜波硕士学位论文的指导教师、武汉理工大学黄涛副教授表示,付胜波的论文是在一个科研项目下完成的。在黄涛的全程指导中,没有发现付胜波存在抄袭的情况。付胜波本人也承诺不存在论文买卖的情况。 同时,电子科技大学的贾桂林在接受澎湃新闻采访时回应称, 读在职研究生要求不是很高, 硕士学位论文确实参考了别人的资料 。 贾桂林透露,资料是当时陕汽集团宝鸡华山车辆公司的高工孙克俭提供

openpyxl - How to preserve xlsx custom properties

痴心易碎 提交于 2020-08-08 05:49:30
问题 How do I preserve custom properties from xlsx template which I am modifying with openpyxl ? When I save() workbook using openpyxl these custom properties vanish! Custom properties can be found here:- On Mac -> Go to File Menu in Excel -> Properties ... -> Custom tab -> Properties section 回答1: I am posting a pure python solution to reading and writing Workbook.CustomDocumentProperties just because I am currently also feeling the pain of not having this in openpyxl, and I needed a quick