添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Excel 的基础用法。手工如何操作 Excel, python 学习手工如何操作Excel

手工操作 Excel 的流程
1, 打开Excel 文件 (路径 + 文件名)
2, 获取表单
3, 使用行号,和列号去确定需要读取的数据
4, 关闭文件

python 操作 Excel, 工具

  • openpyxl, 支持 xlsx 新型格式的读写, 读取速度还可以。
  • tablib, 支持多种格式读写。 xlsx, xls, csv, json, yaml, html, pd
  • xlrd, 经典的 Excel 读取库,
  • xlwt,
  • pandas, 功能强,太臃肿了

安装: pip install openpyxl

获取表单:
1,wb.active, 被选中,被激活
2,通过索引, wb.worksheets[索引]
3,通过sheet名字, wb[‘sheet_name’]
实例代码:

import openpyxl # 读取 Excel 文件夹 # 读取文件之前一定要关闭该文件 # windows下面的路径有反斜杠 # 得到一个 Workbook 对象 wb = openpyxl . load_workbook ( r 'd:\cases.xlsx' ) print ( wb ) # 不直接去获取_sheets 属性,称为私有属性。 print ( wb . _sheets ) # self._sheets # active 是表示被激活,被选择的 sheet active_sheet = wb . active # sheetnames 和 _sheets 有什么区别?? # sheetnames 列表当中存储的是字符串, _sheets 里面存储是对象。 # 获取所有表单的正确用法 # wb.worksheets # # 获取某一个表单, #1, 通过索引去获取 sheet = wb . worksheets [ 0 ] #TODO 2.正规用法(提倡使用的方法) # sheet = wb['Sheet1'] # print(sheet) # Pycharm 不支持 sheet.属性的提示。 # 读取单个单元格, 行和列 # 行和列是从 1 开始的,不是 python 当中从 0 开始 cell = sheet . cell ( 1 , 2 ) print ( cell ) # # 获取 cell 的值, 很多同学会忘记加上 value print ( cell . value ) # # 获取某一行 print ( sheet [ 1 ] ) # # 获取值: for column in sheet [ 1 ] : print ( column . value ) # # 获取某一列 print ( sheet [ 'A' ] ) # # 如何获取多行。 1 到 3 行, 第三行是包含的。 print ( sheet [ 1 : 3 ] ) # 获取所有t的数据 toal_data = list ( sheet . rows ) print ( toal_data ) for row in toal_data : for cell in row : print ( cell . value ) # 写称类 # 写入。一个单元格, # 保存, save("文件名称") wb . save ( r 'd:\cases.xlsx' ) wb . close ( )

对处理excel的功能进行封装成模块,对有需求处理表格的可以调用这个模块的功能:
excel_handler.py模块具有以下功能:

1、打开表单

2、读取标题 头部

3、读取所有的数据

4、指定单元格写入数据(使用静态方法,不要使用实例方法)
代码如下:

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' ) # 读取表中数据 dd = excel . read ( "Sheet1" ) print ( dd ) #获取表头信息 hh = excel . header ( "Sheet1" ) print ( hh ) (1)什么是xlrd模块? python 操作 excel 主要用到xlrd和xlwt这两个库,即xlrd是读 excel ,xlwt是写 excel 的库。(2)为什么使用xlrd模块?在UI自动化或者接口自动化中 数据 维护是一个核心,所以此模块非常实用。xlrd模块可以用于读取 Excel 数据 ,速度非常快,推荐使用!官方文档:https://xlrd.readthedocs.io/en/latest/1、常用单元格的 数据 类型empty(空的)numberdatebooleanerror。 今天工作时,写了一小段代码,大概功能就是比对 excel 里的 数据 数据 库里的 数据 差异,具体实现就是根据 excel 里维度列(就是sql中where后的部分)到 数据 库查找相应的值,然后写入到 excel ,并且跟 excel 里的相关值进行比对,查看是否有差异。 因为要操作 excel ,所以又温习了下 openpyxl . 下面是访问 openpyxl 指定工作表(sheet)的5种方法: from openpyxl import * wb = load_workbook(r'test.xlsx') print(wb._sheet import xlrd# 01.打开 excel 文件,创建一个文件 数据 对象data = xlrd.open_workbook('/home/ python /Desktop/ excel /test1.xls')# print(data)# 02.获取一张表# table = data.sheets()[0] # 1.通过索引获取# table = data.sheet_by_index(0) # 2.... Python 处理 Excel Python 可以很简介的 处理 数据 ,又是可以代替 excel 做一些繁杂的工作。 Excel 有两种格式:XLS是Office 2013或更早版本所使用的格式,是一种二进制格式的文件。XLSX则是用一系列XML文件组成的(最后的X代表了XML)一个压缩包。1、工具包XlsxWriterxlrd&xlwt&xlutils OpenPyXL 介绍可以创建和写 Excel 2007+ XLSX...