python通过openpyxl操作excel
python 对Excel操作常用的主要有xlwt、xlrd、openpyxl ,前者xlwt主要适合于对后缀为xls比较进行写入,而openpyxl主要是针对于Excel 2007 以上版本进行操作,也就是对后缀为xlsx进行操作。
Excel 主要有三大元素,工作簿,Sheet 页,单元格,一个工作簿可以包含多个Sheet页面,而Sheet页由N多个单元格组成,而单元格主要用来存储数据;
一、安装插件
pip install openpyxl
二、创建Excel文件
操作excel之前,首先我们需要创建一个excel ,创建的途径很多,我们主要通过openpyxl的方式创建;
# 首先需要我们导入Workbook包
from openpyxl import Workbook excel = Workbook() # 创建excel对象
excel.save("sample.xlsx") # 保存excel
创建方式很简单,其实就是把没有的东西保存在指定的位置即可;
二、创建Sheet页
1.excel默认创建成功以后会自动创建一个Sheet页面
from openpyxl import Workbook excel = Workbook() # 创建excel对象 excel.create_sheet(title="Sheet1", index=1) # 创建sheet页面,默认index 的值为1,但是index是从0开始
excel.save("sample.xlsx") # 保存excel
注意:
新建sheet 完成以后需要保存,如果不保存是无法创建成功
三、新建excel时写入测试数据
from openpyxl import Workbook # 写入操作之前首先我们需要知道在那个Sheet页写入
# 打开默认的Sheet页面 excel = Workbook()
sheet = excel.active # 激活第一个Sheet页
# excel写入数据的三种方式
# 指定单元格写入数据
ws["A1"] = "添加数据方式1" # 指定单元格进行添加数据
# 在当前的sheet页面中追加一行数据
ws.append([1, 2, 3, 4]) # 在当前sheet页面追加
# 指定行号,列号,写入的值
ws.cell(row=1, column=2, value="第一行第二列添加测试数据")
# 最重要的写入数据以后需要保存数据
wk.save("sample.xlsx")
四、操作excel
1.获取所有的Sheet页面,修改Sheet名称,删除Sheet页面
excel = load_workbook('sample.xlsx') # 打开文件
# 获取当前excel的所有sheet 页
print(excel.sheetnames)
# 获取指定的Sheet页面
sheet = excel['Sheet'] # 通过sheet_name获取,通过sheet名称获取表
# 获取当前sheet页的名称
print(sheet.title)
# 修改 Sheet 名称
sheet.title = "Sheet_new"
# 删除Sheet页
excel.remove_sheet(sheet) # 这个方法已经弃用,推荐使用remove 或者del excel["Sheet1"] # 指定删除的Sheet名称
excel.remove(sheet) # 先获取Sheet,然后在删除
excel.save("sample.xlsx") # 只要修改完成,必须保存excel
2.读取excel数据
# 首先读取excel数据的时候我们需要导入load_workbook
from openpyxl import load_workbook
# 打开文件
excel = load_workbook('bid.xlsx')
# 获取操作的sheet页面
sheet1 = excel['Sheet1'] # 通过sheet_name获取,通过sheet名称获取表
sheet2 = excel.active() # 打开默认的sheet页面 # 读取单元格的数据
data = table.cell(row=1, column=1).value # 指定行列获取单元格的数据,还可以通过循环的方式获取多个单元格的值 data = table["A1"].value # 指定单元格获取数据 dataw = table["A1":"C2"] # 获取多个单元格数据 # 修改单元格数据
data = table["A1"].value = "修改数据方式" # 重新指定单元格的数据
3.获取表的一些属性
wb = load_workbook("sample.xlsx")
ws = wb.active
# 通过返回最大的行数和列数,获取excel有多少行多少列
rows = ws.max_row # 获取行数
cols = ws.max_column # 获取列数
# 直接获取行数和列数,返回的结果是一个生成器,需要通过元组转换下
len(tuple(ws.columns)) # 获取列数
len(tuple(ws.rows)) # 获取行数
四、实际案例
工作中,需要测试数据需要支持多个数据源,但是我不想改后端的代码,所以考虑将excel数据处理为json数据,然后进行处理工作。
def excel2json(file_name):
wb = load_workbook(file_name)
ws = wb.active
result_list = []
head_list = []
for k in tuple(ws.rows)[0]: # excel的第一行数据设置为字典的key
head_list.append(k.value) for rv in tuple(ws.rows)[1:]: # excel 其他的行为字典的value
value_list = []
for v in rv:
value_list.append(v.value)
result_list.append(dict(zip(head_list, value_list))) # 两个列表合并为字典
return result_list
python通过openpyxl操作excel的更多相关文章
- python用openpyxl操作excel
python操作excel方法 1)自身有Win32 COM操作office但讲不清楚,可能不支持夸平台,linux是否能用不清楚,其他有专业处理模块,如下 2)xlrd:(读excel)表,xlrd ...
- 用python库openpyxl操作excel,从源excel表中提取信息复制到目标excel表中
现代生活中,我们很难不与excel表打交道,excel表有着易学易用的优点,只是当表中数据量很大,我们又需要从其他表册中复制粘贴一些数据(比如身份证号)的时候,我们会越来越倦怠,毕竟我们不是机器,没法 ...
- Python使用openpyxl操作excel表格
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 ht ...
- python使用openpyxl操作excel总结
安装openpyxl pip install openpyxl 简单示例 from openpyxl import Workbook #创建一个工作薄对象,也就是创建一个excel文档 wb = Wo ...
- python库openpyxl操作excel
废话不多说,看代码,不懂的留言. from openpyxl import * class ExcelUtil: ''' 读取excel文件内容''' def create_work_book(sel ...
- python使用openpyxl操作excel
def initExcel(): file_path = "test.xlsx" file = load_workbook(file_path) table = file[&quo ...
- Python使用openpyxl读写excel文件
Python使用openpyxl读写excel文件 这是一个第三方库,可以处理xlsx格式的Excel文件.pip install openpyxl安装.如果使用Aanconda,应该自带了. 读取E ...
- 【转发】Python使用openpyxl读写excel文件
Python使用openpyxl读写excel文件 这是一个第三方库,可以处理xlsx格式的Excel文件.pip install openpyxl安装.如果使用Aanconda,应该自带了. 读取E ...
- python openpyxl 操作 excel
初识与安装 Openpyxl is a Python library for reading and writing Excel 2010 xlsx/xlsm/xltx/xltm files. 安装 ...
随机推荐
- servlet操作本地文件汇总: 判断文件是否存在;文件重命名;文件复制; 获取文件属性信息,转成Json对象; 获取指定类型的文件; 查找替换.txt中的文本
package servlet; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; ...
- Spring源码学习(6)——容器的功能扩展
之前的随笔中借BeanFactory介绍了bean的解析和加载的完整过程,实际上,除了BeanFactory,spring还提供了一种功能更加强大的容器:ApplicationContext Appl ...
- 20175223 《Java程序设计》 第八周学习总结
目录 教材学习内容总结 教材学习中的问题和解决过程 1. StarUML 的使用方法. 2. 在IDEA中以TDD的方式对String类和Arrays类进行学习 代码调试中的问题和解决过程 1. 问题 ...
- 学号 20175223 《Java程序设计》第 5 周学习总结
目录 教材学习内容总结 教材学习中的问题和解决过程 1. 在 jdb 调试时使用命令行参数. 代码调试中的问题和解决过程 1. 在jdb调试时通过命令行传入参数 2. "可能尚未初始化变量& ...
- Windows 7 改造
1.界面改造 1.1 软件 Wallpaper Engine 收费(18¥) 动态桌面,通过steam安装,使用steam中的创意工坊下载内容 最好使用集成显卡运行,单显卡方案容易桌面异常刷新 Clo ...
- vuex核心
最详细的Vuex教程 什么是Vuex? vuex是一个专门为vue.js设计的集中式状态管理架构.状态?我把它理解为在data中的属性需要共享给其他vue组件使用的部分,就叫做状态.简单的说就是dat ...
- jcifs windows 域账户单点登录(转)
1.首先从http://jcifs.samba.org 这个站点下载 jcifs-1.3.2.jar包. 2.把这个包放到相应的lib文件下面. 3.对web.xml文件进行配置,添加如下内容 < ...
- git教程:工作区和暂存区
Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念. 先来看名词解释. 工作区(Working Directory) 就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工 ...
- outlook2010设置失败后重新设置
1.WIN+R ,然后在弹出框中输入outlook /importprf .\.prf 2.重新设置.
- 20165228《网络对抗技术》Exp0 Kali安装 Week1
2018-2019-2 <网络对抗技术>Exp0 Kali安装 Week1 Kali下载:来自官网 Kali安装 参考自kali安装教程 (因为写博客时已经安装好kali,所以这部分没有自 ...