python中操作excel数据
python操作excel,python有提供库
本文介绍openpyxl,他只支持新型的excell( xlsx)格式,读取速度还可以
1.安装
pip install openpyxl
2.使用
2.1获取excel文件夹,注意:windows下面的路径有反斜杠,加一个r进行区分
- wb = openpyxl.load_workbook(r'd:\cases.xlsx')
2.2获取所有表单
- sheet=wb.worksheets#获取所有的表单,并把它赋值给sheet
- sheet=wb.worksheets[0]#通过索引获取具体的一个表单
- sheet=wb['sheet1']#可以通过表单名获取,这样获取到了表单,但是用sheet.方法名时,就没有自动提示方法了,如下图所示(pycharm的锅)
2.3读取内容,需要提供行号和列号,注意“行号和列号是从1开始的,因为是excel中,并不是python中
- #1.获取某个单元格
- sheet=wb.worksheets#获取所有的单元格
- cell=sheet.cell(行号,列号)
- cell.value#获取单元格中的值
- #2.获取某一行
- sheet[1]
- #获取某一行的值,不能直接sheet[1].value,因为sheet[1]得到的是元组,而元组没有.value属性,要使用循环
- for column in sheet[1]:
- print(column.value)
- #获取某一列
- sheet['A']
- #获取多行,切片的方式,如获取1到3行
- sheet[1:3]#第3行是包含的
- # 获取所有的数据
- toal_data = list(sheet.rows)
- print(toal_data)
- for row in toal_data:#获取到一行
- for cell in row:#获取行中的某一个值
- print(cell.value)
2.4写入 获取到了,直接赋值
2.5 保存
- wb.save(文件名)
2.6关闭
- wb.close()
- """
- 1、打开表单
- 2、读取标题 头部
- 3、读取所有的数据 (类型是??)
- 4、指定单元格写入数据(使用静态方法,不要使用实例方法)
- """
- from openpyxl import load_workbook
- from openpyxl.worksheet.worksheet import Worksheet
- class ExcelHandler():
- """操作 Excel """
- def __init__(self, file):
- """初始化函数"""
- self.file = file
- # self.wb = load_workbook(file)
- def open_sheet(self, name) -> Worksheet:
- """打开表单.
- 在函数或者方法的后面 加 -> 类型:表示此函数返回值是一个 这样的类型
- 函数注解。
- """
- wb = load_workbook(self.file)
- sheet = wb[name]
- wb.close()
- return sheet
- def header(self, sheet_name):
- """获取表单的表头"""
- sheet = self.open_sheet(sheet_name)
- headers = []
- for i in sheet[1]:
- headers.append(i.value)
- return headers
- def read(self, sheet_name):
- """读取所有的数据"""
- sheet = self.open_sheet(sheet_name)
- rows = list(sheet.rows)
- # 获取标题
- data = []
- for row in rows[1:]:
- row_data = []
- for cell in row:
- row_data.append(cell.value)
- # 列表转成字典:要和 header 去 zip
- data_dict = dict(zip(self.header(sheet_name), row_data))
- data.append(data_dict)
- return data
- @staticmethod
- def write(file, sheet_name, row, column, data):
- """写入 Excel 数据"""
- wb = load_workbook(file)
- sheet = wb[sheet_name]
- # 修改单元格
- sheet.cell(row, column).value = data
- # 保存
- wb.save(file)
- # 关闭
- wb.close()
- if __name__ == '__main__':
- excel = ExcelHandler(r'd:\cases.xlsx')
- excel.write(r'd:\cases.xlsx', 'Sheet1', 5, 1, 'data_value')
python中操作excel数据的更多相关文章
- python中操作excel数据 封装成一个类
本文用python中openpyxl库,封装成excel数据的读写方法 from openpyxl import load_workbook from openpyxl.worksheet.works ...
- python中操作excel
1.首先要安装xlrd cmd后运行pit install xlrd,安装好xlrd后会有成功提示,xlrd是读取excel 2.导入xlrd包 import xlrd 3.打开excel文档 tab ...
- Delphi中使用python脚本读取Excel数据
Delphi中使用python脚本读取Excel数据2007-10-18 17:28:22标签:Delphi Excel python原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 . ...
- Python读写操作Excel模块_xlrd_xlwt_xlutils
Python 读写操作Excel -- 安装第三方库(xlrd.xlwt.xlutils.openpyxl) 如果仅仅是要以表单形式保存数据,可以借助 CSV 格式(一种以逗号分隔的表格数据格式)进行 ...
- Python“文件操作”Excel篇(上)
大家好,我们今天来一起探索一下用Python怎么操作Excel文件.与word文件的操作库python-docx类似,Python也有专门的库为Excel文件的操作提供支持,这些库包括xlrd.xlw ...
- 分析Python中解析构建数据知识
分析Python中解析构建数据知识 Python 可以通过各种库去解析我们常见的数据.其中 csv 文件以纯文本形式存储表格数据,以某字符作为分隔值,通常为逗号:xml 可拓展标记语言,很像超文本标记 ...
- Python Pandas操作Excel
Python Pandas操作Excel 前情提要 ☟ 本章使用的 Python3.6 Pandas==0.25.3 项目中需要用到excel的文件字段太多 考虑到后续字段命名的变动以及中文/英文/日 ...
- Python中操作mysql的pymysql模块详解
Python中操作mysql的pymysql模块详解 前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而后者不支持 ...
- j2e中操作EXCEL
在j2e中操作excel,无非2种情况,在这里我贴部分代码做个例子就OK,不管是导入和导出都是操作的都是流 1,导入,浏览器输入EXCEL到java后台解析 package action; impor ...
随机推荐
- Tensorflow学习笔记No.8
使用VGG16网络进行迁移学习 使用在ImageNet数据上预训练的VGG16网络模型对猫狗数据集进行分类识别. 1.预训练网络 预训练网络是一个保存好的,已经在大型数据集上训练好的卷积神经网络. 如 ...
- 5年Android程序员面试字节跳动两轮后被完虐,请查收给你的面试指南
大家应该看过很多分享面试成功的经验,但根据幸存者偏差的理论,也许多看看别人面试失败在哪里,对自己才更有帮助. 最近跟一个朋友聊天,他准备了几个月,刚刚参加完字节跳动面试,第二面结束后,嗯,挂了- 所以 ...
- IDEA Cannot resolve plugin org.apache.maven.plugins:maven-site-plugin:3.8.2-plugin爆红错误
如果确认本地库存在,maven仓库配置正确,将其显式声明出来,问题解决 <!--报找不到该依赖的错误, 本地库又存在,将其显式声明在这里,问题解决--> <plugin> &l ...
- 来自朋友最近阿里、腾讯、美团等P7岗位面试题
来自年初和最近朋友的大厂面试题. 阿里巴巴 对象如何进行深拷贝,除了clone happen-before原则 jvm调优的实践 单例对象会被jvm的gc时回收吗 redis如果list较大,怎么优化 ...
- better-scroll插件 api
Vue中的better-scroll插件 在需要的文件中添加 import BScorll from 'better-scroll'; 引用的示例代码: let scroll = new BScrol ...
- Mybatis---06Mybatis配置文件浅析(四)
参考链接:深入理解Mybatis插件开发 1.plugins:与其称为Mybatis插件,不如叫Mybatis拦截器,更加符合其功能定位,实际上它就是一个拦截器,应用代理模式,在方法级别上进行拦截. ...
- GPRS DTU的工作原理和应用场景有哪些
GPRS DTU是属于物联网无线数据终端设备的中一种,它主要是利用公用运营商的GPRS网络(又称G网)来为用户提供无线长距离数据传输的功能.一般都是采用的高性能工业级8/16/32位通信处理器和工业级 ...
- Java学习的第四十三天
1.例5.1数组元素的引用 public class cjava { public static void main(String[] args) { int i; int []a=new int[1 ...
- Java学习的第二十四天
1. 目录管理 2.文件方法太多记不清 3.明天学习流和流的分类
- Flask简介与启动服务器
Flask 一.简介 官方文档:http://flask.pocoo.org/ http://www.pythondoc.com/flask/index.html(中文) 1.概述 flask是一个非 ...