使用 Python 处理 Excel 表格数据的实用技巧

简介

在日常工作中,处理 Excel 表格数据是一项常见的任务。Python 提供了丰富的库和工具,能够帮助我们高效地处理 Excel 数据。本篇博客将介绍如何使用 openpyxl 库来读取 Excel 表格并进行数据处理,同时展示一个实际案例,说明如何从 Excel 表格中提取数据并转换为 JSON 格式进行存储。

准备工作

在开始之前,确保你已经安装了 openpyxl 库。如果尚未安装,可以通过以下命令进行安装:

pip install openpyxl

读取 Excel 表格

首先,我们需要使用 openpyxl 库来读取 Excel 表格数据。下面是读取 Excel 表格的基本步骤:

  1. 获取表格的工作簿对象
  2. 得到表单(sheet)
  3. 获取单元格数据
  4. 获取单元格数据的值
# 代码示例
from openpyxl import load_workbook
import pathlib

# 获取excel的相对路径
cur_path = pathlib.Path(__file__).absolute()
excel_path = cur_path.parent / "B题附件1.xlsx"

# 获取工作簿对象
wb = load_workbook(excel_path)

# 获取表单——sheet
sheet = wb["选课情况"]

# 获取单元格数据
cell_value = sheet.cell(row=2, column=2).value

数据处理与转换

接下来,我们将介绍如何利用 Python 对 Excel 表格中的数据进行处理和转换。在本例中,我们将演示如何将 Excel 表格中的数据转换为 JSON 格式并进行存储。以下是代码示例:

# 代码示例
import json

# 获取表单中所有的数据 -- 转化为列表
datas = list(sheet.values)
# 取出标题
title = datas[0]

# 再一次获取后续的每一行数据,跟title压缩成字典
case_list = []
for case in datas[1:]:
    case_dict = dict(zip(title, case))
    case_list.append(case_dict)

# 存储学生的字典
students_dict = {}

# 遍历原始数据,按照选课情况将学生存储到相应的列表中
for student in case_list:
    courses = [key for key, value in student.items() if key != '学生' and key != '行政班' and value == 1]
    key = tuple(courses)  # 以选课情况作为键
    if key not in students_dict:
        students_dict[key] = []
    students_dict[key].append(student['学生'])

# 输出存储结果
print(students_dict)

# 将结果转化为 JSON 格式并存储到文件中
students_dict = {str(key): value for key, value in students_dict.items()}
with open('data.json', 'w', encoding='utf-8') as f:
    json.dump(students_dict,f,ensure_ascii=False,indent=4)

总结

本文介绍了如何使用 Python 中的 openpyxl 库来处理 Excel 表格数据,并提供了一个实际案例,展示了从 Excel 表格中提取数据并转换为 JSON 格式的过程。希望本文能够帮助读者更好地利用 Python 处理 Excel 数据,提高工作效率。

结语

如果您有任何问题或意见,欢迎在评论区留言,我们会尽快回复您。谢谢阅读!

  • 12
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值