读取excel工具:openpyxl | AI应用开发

简介: `openpyxl` 是一个 Python 库,专门用于读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件。它是处理 Excel 文件的强大工具,可以让你在不需要安装 Excel 软件的情况下,对 Excel 文件进行创建、修改、读取和写入操作【10月更文挑战第3天】

读取excel工具:openpyxl | AI应用开发

openpyxl 是一个 Python 库,专门用于读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件。它是处理 Excel 文件的强大工具,可以让你在不需要安装 Excel 软件的情况下,对 Excel 文件进行创建、修改、读取和写入操作。以下是对 openpyxl 的详细介绍。

一、openpyxl 的特点

  1. 读写 Excel 文件:支持读写 .xlsx.xlsm 文件。
  2. 操作单元格:读取、写入和修改单元格内容。
  3. 处理合并单元格:识别和处理合并单元格。
  4. 样式和格式化:应用字体、颜色、对齐、边框和填充等样式。
  5. 公式支持:写入和计算 Excel 公式。
  6. 图表支持:创建和修改各种图表。
  7. 数据验证和条件格式:添加数据验证和条件格式。
  8. 工作表操作:添加、删除、重命名工作表。
  9. 图像支持:插入和处理图片。

二、安装 openpyxl

安装 openpyxl 非常简单,可以使用 pip:

pip install openpyxl

三、openpyxl 的基本概念

1. 工作簿(Workbook)

工作簿是 Excel 文件的最外层结构。一个工作簿可以包含多个工作表。

2. 工作表(Worksheet)

工作簿中的单个表格页面。每个工作表由行和列组成,可以包含数据、公式、图表等。

3. 单元格(Cell)

工作表中的一个数据单元。每个单元格由行号和列字母标识,例如 A1 表示第一列第一行的单元格。

四、基本操作示例

以下是一些基本的 openpyxl 操作示例:

1. 创建和保存 Excel 文件

from openpyxl import Workbook

# 创建一个新的工作簿
wb = Workbook()

# 获取活动的工作表
ws = wb.active

# 写入数据到单元格
ws['A1'] = 'Hello'
ws['B1'] = 'World'

# 保存工作簿
wb.save('example.xlsx')

2. 读取 Excel 文件

from openpyxl import load_workbook

# 打开现有的工作簿
wb = load_workbook('example.xlsx')

# 获取活动的工作表
ws = wb.active

# 读取单元格数据
print(ws['A1'].value)
print(ws['B1'].value)

3. 修改 Excel 文件

# 修改单元格数据
ws['A1'] = 'New Value'

# 保存修改后的工作簿
wb.save('example_updated.xlsx')

4. 合并和拆分单元格

# 合并单元格
ws.merge_cells('A1:B1')

# 拆分单元格
ws.unmerge_cells('A1:B1')

5. 应用样式和格式化

from openpyxl.styles import Font, Color, Alignment, Border, Side

# 应用字体样式
ws['A1'].font = Font(name='Arial', size=14, bold=True, italic=True)

# 应用对齐方式
ws['A1'].alignment = Alignment(horizontal='center', vertical='center')

# 应用边框
ws['A1'].border = Border(left=Side(style='thin'), right=Side(style='thin'), 
                         top=Side(style='thin'), bottom=Side(style='thin'))

6. 添加公式

# 在单元格中插入公式
ws['C1'] = '=SUM(A1:B1)'

7. 操作图表

from openpyxl.chart import BarChart, Reference

# 创建一个柱状图
values = Reference(ws, min_col=1, min_row=1, max_col=2, max_row=2)
chart = BarChart()
chart.add_data(values)

# 将图表插入工作表
ws.add_chart(chart, 'E5')

五、处理合并单元格的完整示例

以下是一个更复杂的示例,展示如何读取 Excel 文件并处理合并单元格的值:

import openpyxl

def fill_merged_cells(sheet):
    # 遍历所有合并单元格
    for merged_range in sheet.merged_cells.ranges:
        # 提取合并单元格的起始坐标和结束坐标
        min_col, min_row, max_col, max_row = merged_range.min_col, merged_range.min_row, merged_range.max_col, merged_range.max_row

        # 获取合并单元格的值(通常位于合并区域的左上角)
        value = sheet.cell(row=min_row, column=min_col).value

        # 将值填充到所有合并区域的单元格中
        for row in range(min_row, max_row + 1):
            for col in range(min_col, max_col + 1):
                sheet.cell(row=row, column=col).value = value
    return sheet

def read_and_process_excel(file_path):
    # 打开 Excel 文件
    workbook = openpyxl.load_workbook(file_path)
    sheet = workbook.active

    # 填充合并单元格的值
    sheet = fill_merged_cells(sheet)

    # 打印每个单元格的值
    for row in sheet.iter_rows():
        for cell in row:
            print(f"Cell {cell.coordinate} has value: {cell.value}")

# 示例 Excel 文件路径
file_path = 'path/to/your/excel/file.xlsx'

# 读取并处理 Excel 文件
read_and_process_excel(file_path)

六、结论

openpyxl 是一个功能强大的 Python 库,适用于处理 Excel 文件的各种需求。无论是简单的数据读写,还是复杂的样式和格式化操作,openpyxl 都能胜任。希望通过本文的介绍,你能够快速上手 openpyxl,并在你的项目中利用它的强大功能。

如果你对 openpyxl 感兴趣,可以参考以下资源:

通过这些资源,你可以深入了解 openpyxl 的更多高级功能和用法。

目录
相关文章
|
25天前
|
人工智能 JSON 自然语言处理
基于阿里云通义千问的AI模型应用开发指南
阿里云通义千问是阿里巴巴集团推出的多模态大语言模型平台,提供了丰富的API和接口,支持多种AI应用场景,如文本生成、图像生成和对话交互等。本文将详细介绍阿里云通义千问的产品功能,并展示如何使用其API来构建一个简单的AI应用,包括程序代码和具体操作流程,以帮助开发者快速上手。
392 3
|
1月前
|
存储 人工智能 uml
介绍一款好用的开源画图神器-draw.io | AI应用开发
draw.io 是一款基于浏览器的开源绘图工具,无需安装即可使用,支持多种操作系统和设备。其简洁的界面、丰富的形状库、智能对齐功能和强大的云端协作能力,使其成为专业人士和创意爱好者的首选。无论是产品设计、流程图绘制还是思维导图构建,draw.io 都能满足你的多样化需求。【10月更文挑战第7天】
103 0
|
23天前
|
存储 人工智能 分布式计算
Parquet 文件格式详解与实战 | AI应用开发
Parquet 是一种列式存储文件格式,专为大规模数据处理设计,广泛应用于 Hadoop 生态系统及其他大数据平台。本文介绍 Parquet 的特点和作用,并演示如何在 Python 中使用 Pandas 库生成和读取 Parquet 文件,包括环境准备、生成和读取文件的具体步骤。【10月更文挑战第13天】
172 60
|
3月前
|
关系型数据库 MySQL Shell
不通过navicat工具怎么把查询数据导出到excel表中
不通过navicat工具怎么把查询数据导出到excel表中
44 0
|
8天前
|
SQL 数据可视化 数据挖掘
想让Excel表格设计更美观?试试这几款好用工具!
Excel表格设计在项目管理和数据分析中至关重要。本文推荐四款辅助工具:板栗看板、Excel自动图表助手、Think-Cell Chart 和 Power BI,分别在任务管理、图表生成、数据可视化等方面表现突出,帮助你设计出更专业、美观的表格。
23 2
|
19天前
|
数据处理
在Excel中,通配符是一种强大的工具
【10月更文挑战第23天】在Excel中,通配符是一种强大的工具
16 4
|
20天前
|
人工智能 运维 Serverless
【CAP评测有奖】邀您共探 AI 应用开发新趋势,赢取多重好礼!
云应用开发平台 CAP(Cloud Application Platform)是阿里云推出的一站式应用开发和生命周期管理平台。是专为现代开发者打造的一站式解决方案,旨在简化应用开发流程,加速创新步伐。它集成了丰富的 Serverless + AI 应用模板、开源工具链与企业级应用管理功能,让无论是个人还是企业开发者,都能轻松构建云上应用,并实现持续迭代升级。
|
20天前
|
人工智能 API 决策智能
swarm Agent框架入门指南:构建与编排多智能体系统的利器 | AI应用开发
Swarm是OpenAI在2024年10月12日宣布开源的一个实验性质的多智能体编排框架。其核心目标是让智能体之间的协调和执行变得更轻量级、更容易控制和测试。Swarm框架的主要特性包括轻量化、易于使用和高度可定制性,非常适合处理大量独立的功能和指令。【10月更文挑战第15天】
146 6
|
21天前
|
存储 人工智能 Java
Neo4j从入门到精通:打造高效知识图谱数据库 | AI应用开发
在大数据和人工智能时代,知识图谱作为一种高效的数据表示和查询方式,逐渐受到广泛关注。本文从入门到精通,详细介绍知识图谱及其存储工具Neo4j,涵盖知识图谱的介绍、Neo4j的特点、安装步骤、使用方法(创建、查询)及Cypher查询语言的详细讲解。通过本文,读者将全面了解如何利用Neo4j处理复杂关系数据。【10月更文挑战第14天】
77 6
|
30天前
|
人工智能 Java API
阿里云开源 AI 应用开发框架:Spring AI Alibaba
近期,阿里云重磅发布了首款面向 Java 开发者的开源 AI 应用开发框架:Spring AI Alibaba(项目 Github 仓库地址:alibaba/spring-ai-alibaba),Spring AI Alibaba 项目基于 Spring AI 构建,是阿里云通义系列模型及服务在 Java AI 应用开发领域的最佳实践,提供高层次的 AI API 抽象与云原生基础设施集成方案,帮助开发者快速构建 AI 应用。本文将详细介绍 Spring AI Alibaba 的核心特性,并通过「智能机票助手」的示例直观的展示 Spring AI Alibaba 开发 AI 应用的便利性。示例源