openpyxl是什么

openpyxl是一个python第三方库,用于操作excel表格。openpyxl可以对excel进行读取数据或者写入数据,使办公变得自动化!

安装

前面说过openpyxl是一个第三方库,所以我们在使用openpyxl之前要进行一个安装。我们可以用wheel安装法,也可以用zip,但是我建议大家还是用pip,简便一些。

首先我们要打开我们的终端

在终端里输入pip install openpyxl

(下载速度太慢的可以使用豆瓣源pip install openpyxl -i http://pypi.douban.com/simple/)

如果没报错,就说明安装成功了!

读取数据

安装完毕之后,我们就开始尝试读取excel里面的数据,就拿一个叫做报价.xlsx的文件举例子。

(请扫码获取文件)

首先,我们要从openpyxl这个库里面导入一个叫做load_workbook的模块,输入这段代码。

from openpyxl import load_workbook

之后我们就能导入我们的excel表格了。不过要注意的是,excel表格文件有两种后缀名,一种是.xlsx,还有一种是.xls。我们在导入的时候我们只能导入.xlsx的excel表格文件。如果你的excel表格文件是.xls结尾的,你可以把后缀名改成.xlsx。不用担心,改了之后你的excel表格不会出现任何问题的。还有的就是load_workbook这个函数不能用于创建excel表格,只能获取到已经创建的表格。

(这里的话我建议还是打开xls文件另存为xlsx文件, xls文件也有xlrd、xlwt两个包能使用,但是这两个包不好用)

workbook = load_workbook('报价.xlsx')#这里请输入你的excel表格文件的路径

在我们这个的报价表格文件里,我们有两张工作表(英文为sheet)。分别叫做Sheet1和Sheet2(当然你可以改名)。我们可以用workbook.sheetnames属性来打印出所有的sheet。

print(workbook.sheetnames)

我们还可以通过workbook[sheet名字]获取表格,然后再通过sheet.dimensions属性获取Sheet1和Sheet2的大小。

for i in workbook.sheetnames:

sheet = workbook[i]#获取每一张sheet工作表

print(sheet.dimensions)#打印出每一张sheet工作表的尺寸

返回结果:

A1:B5

A1:A1

若要获取当前的工作表名字,使用sheet.title方法

print(sheet.title)

如果要获取一个指定格子的数据,我们可以通过cell = sheet[格子],然后cell.value实现。

cell = sheet['A1']

print(cell.value)

这样我们就获取到了A1格子的数据“PS5 2020款”。

如果要获取某一列的所有带有数据的格子,我们可以这么做。

cells = sheet['A']#进入A列

print(cells)

返回结果(元组):

(, , , , )

写入数据

我们完成了如何读取数据,现在就来开始创建一个excel表格文件。

引入我们的openpyxl库。

import openpyxl

如果你已经创建好了一个准备被写入的excel表格文件,请输入一下代码。

wb = openpyxl.load_workbook('文件路径')

如果你想写入数据到一个还没有被创建过的excel文件,请输入一下代码。

wb = openpyxl.Workbook()

我们现在还要获取sheet,如果你是单个sheet,直接这样做就行了。

sheet = wb.active

如果你的excel表格文件有多张工作表,你就需要这样做。

sheet = workbook[指定工作表名称]

以下是在指定格子写入数据的代码。

cell = sheet['格子']#把A1改成你想要的格子

cell.value = '内容'

wb.save(保存的文件名)

当你打开这个excel文件,你就会发现A1格子上你刚刚写入的数据(若这个格子已经有了一段文字,新写入的数据会把它覆盖掉)。

若想要一次性写入多个数据,我们还可以利用sheet.append方法。

data = [['x','x','x'],['x','x','x','x']]

for row in data:

sheet.append(row)

wb.save(保存的文件名)

data是一个带有列表的列表,里面的列表的数据就相当于工作表的每一行,在每一次append之后,sheet就会跳到下一行继续加数据。

如果你想创建一个新的sheet,那你可以使用create_sheet()方法。

下一步

openpyxl的教程就结束了,如果你还想了解更多关于openpyxl的东西,你可以进行百度openpyxl的帖子。或者你还可以去阅读openpyxl的官方教程

本作品采用《CC 协议》,转载必须注明作者和本文链接

coder Derek

python 办公_python 让办公变得自动化相关推荐

  1. python智能办公_Python智能办公-发送电邮

    使用Python发送电邮 教程目录 使用 SMTP_SSL() 和 starttls() 建立安全连接 使用 Python内置模块 smtplib 寄送基本邮件 使用 email 模块寄送 HTML ...

  2. python高效办公_Python高效办公|自动分发任务

    01 问题描述 在工作中,总能遇到分配任务的问题,例如我自己的工作中,一大堆的影像图(一个影像图是几个文件组成),要根据地区分发给不同的同事,如果用电脑本身的搜索文件工具,然后依次拷贝给各个同事,是很 ...

  3. python自动化办公入门书籍推荐-好书推荐 | Python 如此神奇,让繁琐工作自动化...

    原标题:好书推荐 | Python 如此神奇,让繁琐工作自动化 Python 如此神奇,让繁琐工作自动化 编程的威力 如今,人们面临的大多数任务都可以通过编写计算机软件来完成. Al Sweigart ...

  4. python自动化办公入门书籍-Python如此神奇,让繁琐工作自动化 (文中含Python基础)...

    原标题:Python如此神奇,让繁琐工作自动化 (文中含Python基础) "你在2个小时里完成的事,我们3个人要做两天."21世纪早期,我的大学室友在一个电子产品零售商店工作.商 ...

  5. Excel 数据的统计分析及绘图自动处理的python示例(精益办公实战2)

    Excel 数据统计分析及绘图的自动处理python示例(精益办公实战2) 1.背景描述: "看数不如看表,看表不如看图" 2.数据准备和任务要求: 数据准备 一份已经经过数据清洗 ...

  6. Excel数据合并到统计分析自动处理的python示例(精益办公实战1)

    Excel数据合并到统计分析自动处理的python示例(精益办公实战1) 1.背景描述: 社会的发展不断深化了经济对科技和数字化的依赖,企业将不得不面对越来越多,甚至是海量的数据和信息.Excel(或 ...

  7. OA自动化办公系统springboot办公系统源码

    个人已实践,功能齐全代码简单,强烈推荐使用. javaOA自动化办公系统springboot办公系统源码 springboot freemark jpa mybatis mysql实现的OA自动化办公 ...

  8. python书籍_python书籍

    文章底部留言 给您发送下载链接 或者加微信 bigzql 索要 ---来源网络--- 序号 书籍 7001 面向对象的思考过程.pdf 本书是一部独具特色的面向对象技术著作.书中结合代码示例生动透彻地 ...

  9. Python中变量名与变量值的关系

    在Python中变量名与变量值的只是绑定关系如图,变量名只是一个标识符与变量值绑定在一起而已 转载于:https://www.cnblogs.com/liuxiaowei/p/7163470.html

最新文章

  1. 按照Right-BICEP要求对实验二进行测试
  2. Juniper NetScreen 基于源NAT转换
  3. 常见Java面试题之JVM加载class文件的原理机制
  4. 【线程】线程基本函数
  5. arcgis python实例_arcgis二次开发_arcgis二次开发python_arcgis二次开发实例
  6. Nginx(二) 反向代理负载均衡
  7. [LeetCode] 83. Remove Duplicates from Sorted List
  8. Python连接DB2数据库
  9. 使用Python和MySQL实现网上购物管理系统
  10. linux网络编程--socket服务器和客户端TCP编程及多进程编程
  11. java微信公众号百度地图,微信企业号开发之微信考勤百度地图定位
  12. 常用汉字库(约7千个)
  13. 谷歌浏览器http请求出现:Provisional headers are shown 提示
  14. 计算机重装系统后黑屏,电脑重装系统后黑屏怎么办
  15. Centos启动默认打开网络
  16. 最牛训犬师,专治拆家打架咬人,20多年搞定2000多条狗
  17. 忆阻器交叉开关阵列中的长短期记忆(LSTM)神经网络
  18. 原力的黑暗面3-恐惧是黑暗之源
  19. Date日期——格式化日期时分秒
  20. 2.28 内置对象 (查阅MDN)

热门文章

  1. for of 的用法区别_语法全解介词to和for的用法 如何简单区别使用
  2. python3调用java_Python程序中调用Java代码的实践
  3. gorm preload 搜索_macOS系统本地文件搜索工具
  4. java关于23种设计模式的有趣见解
  5. JZOJ__Day 2:【NOIP普及模拟】和谐数
  6. 特征值与特征向量(一)
  7. ktor框架用到了netty吗_如何使用 Ktor 快速开发 Web 项目
  8. python中 s是什么意思_python – “S”在同情中意味着什么
  9. ASP.NET Web API中展示实体Link相关的方面
  10. Linux 进程间通讯详解五