Python办公自动化_Excel篇
Python办公自动化_Excel篇
| 库名 | 作用 |
|---|---|
| xlrd | 从excel中读取数据,支持xls,xlsx |
| xlwt | 从excel进行修改操作,不支持对xlsx格式的修改 |
| xlutils | 在xlrd和xlwt中,对一个已存在的文件进行修改 |
| openpyxl | 主要针对xlsx格式的excel进行读取和编辑 |
| pandas | 可对csv进行操作,主要用于大数据分析 |
安装
安装
1.按 win + R ,输入CMD确定
2.输入 pip install openpyxl
卸载
pip uninstall openpyxl
工作簿
| 属性 | 作用 |
|---|---|
| active | 获取当前活跃的Worksheet |
| worksheets | 以列表的形式返回所有的Worksheet(表格) |
| data_only | 默认为False,为True时只读取数据不显示公式 |
| read_only | 判断是否以read_only模式打开Excel文档 |
| encoding | 获取文档的字符集编码 |
| properties | 获取文档的元数据,如标题,创建者,创建日期等 |
| sheetnames | 获取工作簿中的表(列表) |
| 方法 | 作用 |
|---|---|
| 工作簿.sheetnames | 获取所有表格的名称 |
| 工作簿['工作表名'] | 通过表格名称获取Worksheet对象 |
| 工作簿.active | 获取活跃的表格 |
| remove | 删除一个工作表对象【对象】 |
| create_sheet | 创建一个空的表格【表名】 |
| copy_worksheet | 在Workbook内拷贝表格【对象】 |
练习
新建100张工作表
import openpyxl as vb
路径 = r'c:/测试.xlsx'
工作簿 = vb.Workbook(路径) # 打开工作簿
for i in range(1,101):
工作簿.create_sheet(str(i) + '月')
工作簿.save(路径)
除了9月份的工作表以外都删除
import openpyxl as vb
路径 = r'c:/测试.xlsx'
工作簿 = vb.load_workbook(路径) # 打开工作簿
显示所有工作表 = 工作簿.worksheets
for 工作表 in 显示所有工作表:
if 工作表.title != '9月':
工作表 = 工作簿[工作表.title]
工作簿.remove(工作表)
工作簿.save(路径)
批量修改工作表的名称
import openpyxl as vb
路径 = r'c:/模板.xlsx'
工作簿 = vb.load_workbook(路径)
显示所有工作表 = 工作簿.worksheets
for 工作表 in 显示所有工作表:
工作表.title = '北京' + 工作表.title
工作簿.save(路径)
获取一个单元格的值
import openpyxl as vb
路径 = r'c:/测试.xlsx'
工作簿 = vb.load_workbook(路径)
工作表 = 工作簿['Sheet1']
单元格 = 工作表['A1'].value
print(单元格)
获取第二列 1,3,5,7行的数据
import openpyxl as vb
路径 = r'c:/测试.xlsx'
工作簿 = vb.load_workbook(路径)
工作表 = 工作簿['Sheet1']
for i in range(1,8,2):
print(i,工作表.cell(row=i,column=2).value)
获取每一行,每一列
import openpyxl as vb
路径 = r'c:/测试.xlsx'
工作簿 = vb.load_workbook(路径)
工作表 = 工作簿['Sheet1']
# 因为按行,所以返回A1, B1, C1这样的顺序
for 行 in 工作表.rows:
for 单元格 in 行:
print(单元格.value)
# A1, A2, A3这样的顺序
for 列 in 工作表.columns:
for 单元格 in 列:
print(单元格.value)
读取excel表的所有
from openpyxl import load_workbook
import os
import sys
sys.path.append("..")
class TestExcel():
def get_TestExcel(self, file_name, sheet_name):
print("======", os.getcwd())
# workbook = load_workbook('Datas.xlsx')#打开表
# sheet = workbook['jack']#定位表单
workbook = load_workbook(file_name) # 打开表
sheet = workbook[sheet_name] # 定位表单
test_data = [] # 把所有行的数据放到列表中
for i in range(2, sheet.max_row + 1):
sub_data = {} # 把每行的数据放到字典中
for j in range(1, sheet.max_column + 1):
sub_data[sheet.cell(1, j).value] = sheet.cell(i, j).value
test_data.append(sub_data) # 拼接每行单元格的数据
return test_data
if __name__ == "__main__":
te = TestExcel()
txt = te.get_TestExcel("../data/Datas.xlsx", "pro")
Python办公自动化_Excel篇的更多相关文章
- 最全总结 | 聊聊 Python 办公自动化之 Excel(上)
1. 前言 在我们日常工作中,经常会使用 Word.Excel.PPT.PDF 等办公软件 但是,经常会遇到一些重复繁琐的事情,这时候手工操作显得效率极其低下:通过 Python 实现办公自动化变的很 ...
- 最全总结 | 聊聊 Python 办公自动化之 Excel(中)
1. 前言 上一篇文章中,我们聊到使用 xlrd.xlwt.xlutils 这一组合操作 Excel 的方法 最全总结 | 聊聊 Python 办公自动化之 Excel(上) 本篇文章将继续聊另外一 ...
- 最全总结 | 聊聊 Python 办公自动化之 Excel(下)
1. 前言 前面谈到 Python 处理 Excel 文件最常见的两种方式,即:xlrd/xlwt.openpyxl 其中, xlrd/xlwt 这一组合,xlrd 可以负责读取数据,而 xlwt ...
- 最全总结 | 聊聊 Python 办公自动化之 Word(上)
1. 前言 日常自动化办公中,使用 Python 真的能做到事半功倍! 在上一个系列中,我们对 Python 操作 Excel 进行了一次全面总结 最全总结 | 聊聊 Python 办公自动化之 Ex ...
- 最全总结 | 聊聊 Python 办公自动化之 Word(中)
1. 前言 上一篇文章,对 Word 写入数据的一些常见操作进行了总结 最全总结 | 聊聊 Python 办公自动化之 Word(上) 相比写入数据,读取数据同样很实用! 本篇文章,将谈谈如何全面读取 ...
- 最全总结 | 聊聊 Python 办公自动化之 Word(下)
1. 前言 关于 Word 文档的读写,前面两篇文章分别进行了一次全面的总结 最全总结 | 聊聊 Python 办公自动化之 Word(上) 最全总结 | 聊聊 Python 办公自动化之 Word( ...
- 最全总结 | 聊聊 Python 办公自动化之 PDF(上)
1. 前言 自动化办公,非 Python 莫属! 从本篇文章开始,我们继续聊聊自动化办公中另外一个常用系列:PPT 2. 准备一下 Python 操作 PPT 最强大的依赖库是:python-pptx ...
- 最全总结 | 聊聊 Python 办公自动化之 PPT(中)
1. 前言 上一篇文章简单地介绍了 PPT 的文档结构,并使用 python-pptx 这个依赖库完成对 PPT 文档最基本的操作 最全总结 | 聊聊 Python 办公自动化之 PPT(上) 作为 ...
- python办公自动化系列之金蝶K3自动登录(二)
接上一篇博文python办公自动化系列之金蝶K3自动登录(一),我们接着聊聊利用python脚本实现金蝶K3 Wise客户端自动登录这一需求. 如上图所示,自动选择[组织机构]后,我们还需要驱动[当前 ...
- python办公自动化系列之金蝶K3(三)
小爬在之前的两篇文章 [python办公自动化系列之金蝶K3自动登录(一)].[python办公自动化系列之金蝶K3自动登录(二)]带大家系统搞定了K3客户端的自动登录难题,但是搞定[自动登录]只是我 ...
随机推荐
- 嵌入式C编码规范
每个程序员都有自己的编码风格,自己喜欢就好. 嵌入式C编码规范 上述博文来自转载
- Qt源码解析——一切从QObject说起
关键词:Qt 源码 QObject 元对象 属性 事件 信号 槽 状态机 概述 原系列文章地址 学习和理解任何框架或库,官方文档可能都是最权威.最有效的信息.Qt也不例外,https://doc.qt ...
- clipboard vue 一键复制
一键复制失败 首先 下载clipboard插件 npm install clipboard --save 在需要的组件里引入 也可以全局引入 import Clipboard from 'clipb ...
- Vue 2.x源码学习:数据响应式改造
内容乃本人学习Vue2源码的一点笔记,若有错误还望指正. 源码版本: vue: 2.6 vue-loader: 13.x vue-template-compiler: 2.6 相关学习笔记: rend ...
- Python 哈希表的实现——字典
哈喽大家好,我是咸鱼 接触过 Python 的小伙伴应该对[字典]这一数据类型都了解吧 虽然 Python 没有显式名称为"哈希表"的内置数据结构,但是字典是哈希表实现的数据结构 ...
- .NET 与 OpenEuler 共展翅,昇腾九万里
openEuler 已支持 X86.ARM.SW64.RISC-V.LoongArch 多处理器架构,逐步扩展 PowerPC 等更多芯片架构支持,持续完善多样性算力生态体验. openEuler 社 ...
- 什么是RPC协议
工作的时候,第一次接触CRPC协议,当时就很懵,啥是CRPC协议,一脸懵逼,于是就到网上去搜,填充知识空缺. 不少解释显得非常官方,我相信大家在各种平台上也都看到过,解释了又好像没解释,都在用一个我们 ...
- java当中组件和窗口的相容问题(里面包含了这些方法的作用)
窗口也称为容器,在书中大部分称为容器,这里主要讲的是底层容器. JFrame():创建一个无标签的窗口. JFrame(String s):创建标题为s的窗口 setBounds(int a,int ...
- 33. 干货系列从零用Rust编写正反向代理,关于HTTP客户端代理的源码实现
wmproxy wmproxy已用Rust实现http/https代理, socks5代理, 反向代理, 静态文件服务器,四层TCP/UDP转发,七层负载均衡,内网穿透,后续将实现websocket代 ...
- [ABC279G] At Most 2 Colors
Problem Statement There is a grid with $1 \times N$ squares, numbered $1,2,\dots,N$ from left to rig ...