Python获取excel内容
Posted Yi_Warmth
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python获取excel内容相关的知识,希望对你有一定的参考价值。
Python没有自带openyxl,需要安装: pip install openyxl
打开excel文档: openyxl.load_workbook(excel地址) - 打开现有excel文件
openyxl.Workbook() - 新建一个excel文件
返回一个工作博对象
import openpyxl wb = openpyxl.load_workbook("test.xlsx") print(type(wb)) # <class ‘openpyxl.workbook.workbook.Workbook‘>
openpyxl.load_workbook()函数,传入一个存在的excel文件名称/excel文件名称+文件路径,返回一个workbook对象。
从workbook对象中获取工作表
import openpyxl wb = openpyxl.load_workbook("test.xlsx") # print(type(wb)) # <class ‘openpyxl.workbook.workbook.Workbook‘> # 工作簿对象.sheetnames - 获取当前工作簿中所有表的名字 # print(wb.sheetnames) [‘Sheet1‘, ‘Sheet2‘, ‘Sheet3‘] # 工作簿对象.active - 获取当前活动表对应的Worksheet对象 # print(wb.active) <Worksheet "Sheet1"> # 工作簿对象[表名] - 根据表名获取指定表对象 # print(wb["Sheet2"]) <Worksheet "Sheet2"> # 表对象.title - 获取表对象的表名 ws = wb["Sheet1"] # print(ws.title) Sheet1 # 表对象.max_row - 获取表中最多有多少行 # print(ws.max_row) 15 # 表对象.max_column - 获取表有多少列 print(ws.max_column) # 3
从表中取得单元格
import openpyxl wb = openpyxl.load_workbook("test.xlsx") ws = wb["Sheet1"] # 表对象[‘列号行号‘] - 获取指定列的指定行对应的单元格对象(单元格对象是 Cell 类的对象,列号是从A开始,行号是从1开始) a = ws["A1"] # print(a) # <Cell ‘Sheet1‘.A1> # 单元格对象.value - 获取单元格中的内容 print(a.value) # 单元格对象.row - 获取行号(数字1开始) print(a.row) # 单元格对象.column - 获取列号(数字1开始) print(a.column) # 单元格对象.coordinate - 获取位置(包括行号和列号) print(a.coordinate) # 表对象.iter_rows() - 一行一行的取 row_s = ws.iter_rows() for a in row_s: for i in a: print(i.value) # 表对象.iter_cols() - 列表一列的取 col_s = ws.iter_cols() for c in col_s: for j in c: print(j.value)
用字母来指定列时会出现列Z之后用两个字母代替,可以调用表的cell()方法,传入整数作为行数和列数,第一行或者第一列的整数是1,而不是0
表对象.cell(行号,列号)
import openpyxl wb = openpyxl.load_workbook("test.xlsx") ws = wb["Sheet1"] # 获取第二列的所有内容 max_row = ws.max_row for row in range(1, max_row + 1): cell = ws.cell(row, 2) print(cell.value)
从表中取得列和行
取电子表格中一行、一列或一个矩形区域中的所有 Cell 对象
表对象[位置1:位置2] 获取指定范围内的所有单元格
import openpyxl from openpyxl.utils import get_column_letter, column_index_from_string wb = openpyxl.load_workbook("test.xlsx") ws = wb["Sheet1"] max_row = ws.max_row column = get_column_letter(max_row) # 获取第一列所有单元格对象 row2 = ws["A1":f"{column}1"] ss = [(cell.coordinate, cell.value) for cells in row2 for cell in cells] print(ss)
import openpyxl from openpyxl.utils import get_column_letter, column_index_from_string wb = openpyxl.load_workbook("test.xlsx") ws = wb["Sheet1"] max_cols = ws.max_column column = get_column_letter(max_cols) # 获取第一片区域所有单元格对象 row2 = ws["A1":f"{column}3"] ss = [(cell.coordinate, cell.value) for cells in row2 for cell in cells] print(ss)
以上是关于Python获取excel内容的主要内容,如果未能解决你的问题,请参考以下文章
python读取excel莫个页签sheets()行数,并且获取里边的内容。