python操作excel,python有提供库

本文介绍openpyxl,他只支持新型的excell( xlsx)格式,读取速度还可以

1.安装

pip install openpyxl

2.使用

2.1获取excel文件夹,注意:windows下面的路径有反斜杠,加一个r进行区分

  1. wb = openpyxl.load_workbook(r'd:\cases.xlsx')

  

2.2获取所有表单

  1. sheet=wb.worksheets#获取所有的表单,并把它赋值给sheet
  2.  
  3. sheet=wb.worksheets[0]#通过索引获取具体的一个表单
  4.  
  5. sheet=wb['sheet1']#可以通过表单名获取,这样获取到了表单,但是用sheet.方法名时,就没有自动提示方法了,如下图所示(pycharm的锅)  

  

2.3读取内容,需要提供行号和列号,注意“行号和列号是从1开始的,因为是excel中,并不是python中

  1. #1.获取某个单元格
  2. sheet=wb.worksheets#获取所有的单元格
  3. cell=sheet.cell(行号,列号)
  4.  
  5. cell.value#获取单元格中的值
  6.  
  7. #2.获取某一行
  8.  
  9. sheet[1]
  10.  
  11. #获取某一行的值,不能直接sheet[1].value,因为sheet[1]得到的是元组,而元组没有.value属性,要使用循环
  12.  
  13. for column in sheet[1]:
  14.  
  15. print(column.value)
  16.  
  17. #获取某一列
  18. sheet['A']
  19.  
  20. #获取多行,切片的方式,如获取1到3行
  21.  
  22. sheet[1:3]#第3行是包含的
  23.  
  24. # 获取所有的数据
  25. toal_data = list(sheet.rows)
  26. print(toal_data)
  27.  
  28. for row in toal_data:#获取到一行
  29. for cell in row:#获取行中的某一个值
  30. print(cell.value)

  

  

2.4写入 获取到了,直接赋值

2.5 保存

  1. wb.save(文件名)

  

2.6关闭

  1. wb.close()

  

  1. """
  2. 1、打开表单
  3.  
  4. 2、读取标题 头部
  5.  
  6. 3、读取所有的数据 (类型是??)
  7.  
  8. 4、指定单元格写入数据(使用静态方法,不要使用实例方法)
  9. """
  10. from openpyxl import load_workbook
  11. from openpyxl.worksheet.worksheet import Worksheet
  12.  
  13. class ExcelHandler():
  14. """操作 Excel """
  15.  
  16. def __init__(self, file):
  17. """初始化函数"""
  18. self.file = file
  19. # self.wb = load_workbook(file)
  20.  
  21. def open_sheet(self, name) -> Worksheet:
  22. """打开表单.
  23. 在函数或者方法的后面 加 -> 类型:表示此函数返回值是一个 这样的类型
  24. 函数注解。
  25. """
  26. wb = load_workbook(self.file)
  27. sheet = wb[name]
  28. wb.close()
  29. return sheet
  30.  
  31. def header(self, sheet_name):
  32. """获取表单的表头"""
  33. sheet = self.open_sheet(sheet_name)
  34. headers = []
  35. for i in sheet[1]:
  36. headers.append(i.value)
  37. return headers
  38.  
  39. def read(self, sheet_name):
  40. """读取所有的数据"""
  41. sheet = self.open_sheet(sheet_name)
  42. rows = list(sheet.rows)
  43.  
  44. # 获取标题
  45. data = []
  46. for row in rows[1:]:
  47. row_data = []
  48. for cell in row:
  49. row_data.append(cell.value)
  50. # 列表转成字典:要和 header 去 zip
  51. data_dict = dict(zip(self.header(sheet_name), row_data))
  52. data.append(data_dict)
  53. return data
  54.  
  55. @staticmethod
  56. def write(file, sheet_name, row, column, data):
  57. """写入 Excel 数据"""
  58. wb = load_workbook(file)
  59. sheet = wb[sheet_name]
  60. # 修改单元格
  61. sheet.cell(row, column).value = data
  62. # 保存
  63. wb.save(file)
  64. # 关闭
  65. wb.close()
  66.  
  67. if __name__ == '__main__':
  68. excel = ExcelHandler(r'd:\cases.xlsx')
  69. excel.write(r'd:\cases.xlsx', 'Sheet1', 5, 1, 'data_value')

python中操作excel数据的更多相关文章

  1. python中操作excel数据 封装成一个类

    本文用python中openpyxl库,封装成excel数据的读写方法 from openpyxl import load_workbook from openpyxl.worksheet.works ...

  2. python中操作excel

    1.首先要安装xlrd cmd后运行pit install xlrd,安装好xlrd后会有成功提示,xlrd是读取excel 2.导入xlrd包 import xlrd 3.打开excel文档 tab ...

  3. Delphi中使用python脚本读取Excel数据

    Delphi中使用python脚本读取Excel数据2007-10-18 17:28:22标签:Delphi Excel python原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 . ...

  4. Python读写操作Excel模块_xlrd_xlwt_xlutils

    Python 读写操作Excel -- 安装第三方库(xlrd.xlwt.xlutils.openpyxl) 如果仅仅是要以表单形式保存数据,可以借助 CSV 格式(一种以逗号分隔的表格数据格式)进行 ...

  5. Python“文件操作”Excel篇(上)

    大家好,我们今天来一起探索一下用Python怎么操作Excel文件.与word文件的操作库python-docx类似,Python也有专门的库为Excel文件的操作提供支持,这些库包括xlrd.xlw ...

  6. 分析Python中解析构建数据知识

    分析Python中解析构建数据知识 Python 可以通过各种库去解析我们常见的数据.其中 csv 文件以纯文本形式存储表格数据,以某字符作为分隔值,通常为逗号:xml 可拓展标记语言,很像超文本标记 ...

  7. Python Pandas操作Excel

    Python Pandas操作Excel 前情提要 ☟ 本章使用的 Python3.6 Pandas==0.25.3 项目中需要用到excel的文件字段太多 考虑到后续字段命名的变动以及中文/英文/日 ...

  8. Python中操作mysql的pymysql模块详解

    Python中操作mysql的pymysql模块详解 前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而后者不支持 ...

  9. j2e中操作EXCEL

    在j2e中操作excel,无非2种情况,在这里我贴部分代码做个例子就OK,不管是导入和导出都是操作的都是流 1,导入,浏览器输入EXCEL到java后台解析 package action; impor ...

随机推荐

  1. Tensorflow学习笔记No.8

    使用VGG16网络进行迁移学习 使用在ImageNet数据上预训练的VGG16网络模型对猫狗数据集进行分类识别. 1.预训练网络 预训练网络是一个保存好的,已经在大型数据集上训练好的卷积神经网络. 如 ...

  2. 5年Android程序员面试字节跳动两轮后被完虐,请查收给你的面试指南

    大家应该看过很多分享面试成功的经验,但根据幸存者偏差的理论,也许多看看别人面试失败在哪里,对自己才更有帮助. 最近跟一个朋友聊天,他准备了几个月,刚刚参加完字节跳动面试,第二面结束后,嗯,挂了- 所以 ...

  3. IDEA Cannot resolve plugin org.apache.maven.plugins:maven-site-plugin:3.8.2-plugin爆红错误

    如果确认本地库存在,maven仓库配置正确,将其显式声明出来,问题解决 <!--报找不到该依赖的错误, 本地库又存在,将其显式声明在这里,问题解决--> <plugin> &l ...

  4. 来自朋友最近阿里、腾讯、美团等P7岗位面试题

    来自年初和最近朋友的大厂面试题. 阿里巴巴 对象如何进行深拷贝,除了clone happen-before原则 jvm调优的实践 单例对象会被jvm的gc时回收吗 redis如果list较大,怎么优化 ...

  5. better-scroll插件 api

    Vue中的better-scroll插件 在需要的文件中添加 import BScorll from 'better-scroll'; 引用的示例代码: let scroll = new BScrol ...

  6. Mybatis---06Mybatis配置文件浅析(四)

    参考链接:深入理解Mybatis插件开发 1.plugins:与其称为Mybatis插件,不如叫Mybatis拦截器,更加符合其功能定位,实际上它就是一个拦截器,应用代理模式,在方法级别上进行拦截. ...

  7. GPRS DTU的工作原理和应用场景有哪些

    GPRS DTU是属于物联网无线数据终端设备的中一种,它主要是利用公用运营商的GPRS网络(又称G网)来为用户提供无线长距离数据传输的功能.一般都是采用的高性能工业级8/16/32位通信处理器和工业级 ...

  8. Java学习的第四十三天

    1.例5.1数组元素的引用 public class cjava { public static void main(String[] args) { int i; int []a=new int[1 ...

  9. Java学习的第二十四天

    1. 目录管理 2.文件方法太多记不清 3.明天学习流和流的分类

  10. Flask简介与启动服务器

    Flask 一.简介 官方文档:http://flask.pocoo.org/ http://www.pythondoc.com/flask/index.html(中文) 1.概述 flask是一个非 ...