Python读取Excel的数据
•
Python
借助第三方库实现读取/修改excel表格内的数据:常见的为 xlrd 和 openpyxl
只是读取excel的数据:xlrd,需要读取/写入数据:openpyxl,所以选择用openpyxl
# 安装第三方库 pip install openpyxl
流程
正常打开一个excel文件的流程:找到文件-双击打开-选择某个表-进行添加/修改-修改/写入就保存文件/只读取就不管-不用了就关闭
from openpyxl import load_workbook # 找到文件,双击打开文件 workbook = load_workbook(filename="我是文件名.xlsx") # 选择表名为Sheet1的表 # 指定表名获取表对象 sheet = workbook["Sheet1"] # 通过索引获取表对象,0开始 sheet = workbook[0] # 选中某个单元格 cells = sheet ["A1"] # 获取对应单元格的数据(如果有) values = cells.value # 修改/写入就保存文件 workbook.save(filename="我是文件名.xlsx") # 添加/修改结束了要关掉文件 workbook.close()
写入/修改数据
from openpyxl import load_workbook workbook = load_workbook(filename="我是文件名.xlsx") # 存在即修改,不存在则为写入 # 方式一:通过位置,指定单元格插入 sheet ["A1"] = "写入的内容" # 方式二:通过坐标,某一行某一列获取位置插入 sheet.cell(row=2, column=1,value="写入的内容") // sheet.cell(row=2, column=1).value="写入的内容" workbook.save(filename="我是文件名.xlsx") workbook.close()
插入行列,删除行列
from openpyxl import load_workbook workbook = load_workbook(filename="我是文件名.xlsx") sheet = workbook["Sheet1"] # 在第6行的位置插入1行 sheet.insert_rows(6) # 两个参数 # 在第几行插入:idx # 插入多少行:amount默认等于1 # 在第6行的位置插入4行 sheet.insert_rows(idx=6,amount=4) # 插入列同理 # 在第6列的位置插入1行 sheet.insert_cols(6) # 在第6列的位置插入4行 sheet.insert_cols(idx=6,amount=4) # 删除行 sheet.delete_rows(idx=6, amount=1) # 删除列 sheet.delete_cols(idx=6, amount=1) workbook.save(filename="我是文件名.xlsx") workbook.close()
获取所有表名
from openpyxl import load_workbook workbook = load_workbook(filename="我是文件名.xlsx") workbook_list = wb_obj.sheetnames # 列表形式返回 for sheet in workbook_list : print(sheet)
最大最小行列
print(sheet.max_row) print(sheet.min_row) print(sheet.max_column) print(sheet.min_column)
行列切片读取数据

通过注释可得:
从excel表中按行生成单元格。使用行和列的索引指定循环范围。
如果未指定参数,则范围从A1开始。
如果工作表中没有单元格,将返回空元组。
返回一个内容对象
from openpyxl import load_workbook
wb = load_workbook(filename="./biao.xlsx")
sh = wb["sheet1"]
# 默认情况
print(sh.iter_rows())
#
wb.close()
-----------------------------------------
from openpyxl import load_workbook
wb = load_workbook(filename="./biao.xlsx")
sh = wb["sheet1"]
# 转成一个容易理解的内容
print(list(sh.iter_rows()))
[(, , )]
wb.close()
-----------------------------------------
from openpyxl import load_workbook
wb = load_workbook(filename="./biao.xlsx")
sh = wb["sheet1"]
# 将数据可视化,默认为values_only=False
print(list(sh.iter_rows(values_only=True)))
[('id', 'name', 'age')]
wb.close()
列切片也是如此,只需要将 iter_rows替换成 iter_cols 即可
修改文字的大小颜色字体等
from openpyxl import load_workbook
from openpyxl.styles import Font,colors
wb = load_workbook(filename="./biao.xlsx")
sh = wb["sheet1"]
# 指定单元格字体颜色,
sheet['A1'].font = Font(
color=colors.RED, # 设置颜色
size=66, # 设置大小
bold=True, # 设置是否加粗
italic=True # 设置是否倾斜
)
"""
除此之外还有许多可以进行设置,以下为Font类方法中init方法
def __init__(self, name=None, sz=None, b=None, i=None, charset=None,
u=None, strike=None, color=None, scheme=None, family=None, size=None,
bold=None, italic=None, strikethrough=None, underline=None,
vertAlign=None, outline=None, shadow=None, condense=None,
extend=None):
有许多参数均可以调整使用,主题,下划线等
"""
封装一个读取excel表格数据的方法
from openpyxl import load_workbook
wb = load_workbook(filename="./biao.xlsx")
sh = wb["sheet1"]
# 将数据可视化,默认为values_only=False
data = list(sh.iter_rows(values_only=True))
print(data)
# [('id', 'name', 'age'), (1, '张三', 33), (2, '李四', 44), (3, '王五', 55)]
wb.close()
封装方法:
class ReadExcel:
def __init__(self,FileName):
self.workbook = load_workbook(filename=FileName)
def read_execl(self, SheetName):
try:
sheet = self.workbook[SheetName]
datas = list(sheet.iter_rows(values_only=True))
# 这里可以对数据进行处理,根据使用需求自行处理
return datas
except Exception as e:
print(f"读取{SheetName}表有误", e)
finally:
self.workbook.close()
本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/aacc24760a.html
