Python使用openpyxl模块读写excel文件
发布日期:2021-05-12 20:11:38 浏览次数:22 分类:精选文章

本文共 3112 字,大约阅读时间需要 10 分钟。

Python使用openpyxl模块读写Excel文件

openpyxl是一个专为处理xlsx格式Excel文件而设计的Python库,适用于读取和写入Excel数据。

安装openpyxl

通过pip安装openpyxl库:

pip install openpyxl

使用openpyxl写入Excel文件

以下是将数据写入Excel文件的示例代码:

import openpyxl
openpyxl_data = [
('我', '们', '在', '这', '寻', '找'),
('我', '们', '在', '这', '失', '去'),
('p', 'y', 't', 'h', 'o', 'n')
]
output_file_name = 'openpyxl_file.xlsx'
def save_excel(target_list, output_file_name):
"""将数据写入xlsx文件"""
if not output_file_name.endswith('.xlsx'):
output_file_name += '.xlsx'
# 创建一个新的工作簿
wb = openpyxl.Workbook()
# 获取当前活跃的工作表,默认是第一个表格
ws = wb.active
# 添加标题行
title_data = ('a', 'b', 'c', 'd', 'e', 'f')
target_list.insert(0, title_data)
# 获取数据行数和列数
rows = len(target_list)
cols = len(target_list[0]) if rows > 0 else 0
# 将数据写入Excel表格
for i in range(rows):
for j in range(cols):
ws.cell(row=i + 1, column=j + 1).value = target_list[i][j]
# 保存文件
wb.save(output_file_name)
# 调用函数将数据保存到文件中
save_excel(openpyxl_data, output_file_name)

代码说明

  • 数据准备:将需要保存的数据以列表或元组形式准备好,确保数据类型一致。
  • 函数封装:将写入Excel的操作封装到save_excel函数中,便于重复使用。
  • 工作表操作
    • 创建一个新的openpyxl.Workbook对象。
    • 获取并激活默认的工作表ws
    • 添加标题行,确保表格结构清晰。
    • 遍历数据列表,将每个单元格的值依次写入表格中。
  • 保存文件:调用wb.save()方法将修改保存到指定文件名。
  • 运行上述代码后,会在当前目录下生成一个名为openpyxl_file.xlsx的Excel文件,表格中将包含写入的数据。


    使用openpyxl读取Excel文件

    以下是读取Excel文件数据的示例代码:

    import openpyxl
    input_file_name = 'openpyxl_file.xlsx'
    def read_excel(input_file_name):
    """从xlsx文件中读取数据"""
    # 打开Excel文件
    workbook = openpyxl.load_workbook(input_file_name)
    # 获取所有工作表名称
    print("工作表名称:", workbook.sheetnames)
    # 获取当前活跃的工作表
    table = workbook.active
    # 获取表格的最大行数和列数
    rows = table.max_row
    cols = table.max_column
    # 读取表格数据
    for row in range(rows):
    for col in range(cols):
    cell_value = table.cell(row=row + 1, column=col + 1).value
    print(f"行{row + 1},列{col + 1}:{cell_value}", end=' ')
    return table
    # 调用函数读取数据
    read_excel(input_file_name)

    代码说明

  • 打开文件:使用openpyxl.load_workbook()方法打开Excel文件,返回一个workbook对象。
  • 获取工作表信息:通过workbook.sheetnames获取文件中所有工作表的名称。
  • 获取当前工作表:使用workbook.active获取当前活跃的工作表,通常是第一张工作表。
  • 读取数据
    • 获取表格的最大行数和列数。
    • 遍历每一行和每一列,读取单元格的值并打印。
  • 注意事项:openpyxl的读取索引是从1开始的,与xlrd等其他库不同。
  • 运行上述代码后,会输出文件中所有单元格的数据。


    openpyxl的高级功能

    openpyxl提供了丰富的功能,包括:

    • 设置列宽和行高:可以根据数据需求调整表格布局。
    • 设置单元格格式:如居中、字体大小、颜色等。
    • 数据图表:支持将数据绘制为图表,便于数据可视化。
    • 条件格式:根据数据条件设置单元格的格式。

    以下是一个简单的示例,演示如何设置列宽和居中格式:

    import openpyxl
    from openpyxl.utils import get_column_letter
    from openpyxl.styles import Font, colors, Alignment
    # 假设已经创建并填充了数据
    ws = wb.active
    # 设置列宽
    for i in range(len(ws.columns)):
    col_letter = get_column_letter(i + 1)
    column_width = max(len(str(cell.value)) for cell in ws.columns[i])
    if column_width > 40:
    ws.column_dimensions[col_letter].width = 45
    else:
    ws.column_dimensions[col_letter].width = column_width + 3
    # 设置居中格式
    for col in ws.columns:
    for cell in col:
    cell.alignment = Alignment(horizontal='left', vertical='center', wrap_text=True)
    cell.font = Font(size=10)

    openpyxl是一个强大的Excel处理库,支持复杂的操作,如条件格式、数据透视表、图表等。更多功能请参考openpyxl的官方文档。

    上一篇:Python使用pyzabbix调用Zabbix API
    下一篇:Python使用xlwt和xlrd读写excel文件

    发表评论

    最新留言

    不错!
    [***.144.177.141]2025年05月04日 13时20分33秒