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()行数,并且获取里边的内容。

python怎么按txt中的关键词获取excel行内容?

利用Python搜索51CTO推荐博客并保存至Excel

如何使用Python从Excel中获取数据粘贴到网页,然后再获取网页内容

Python实现PDF扫描件生成DOCX或EXCEL功能

python--读取Excel内容