一、openpyxl 介绍
openpyxl
是一个用于读取和写入 Excel 2010 xlsx/xlsm/xltx/xltm 文件的 Python 库。使用场景包括:
- 数据分析:从 Excel 文件中读取数据,进行处理和分析。
- 自动化办公:自动生成报告、填写表格等。
- 数据导入导出:将数据从 Python 程序导入到 Excel,或将 Excel 数据导入到 Python 程序中。
安装openpyxl
二、Excel文件下载
创建并保存 Excel 文件
示例:创建一个新的 Excel 工作簿,并写入一些数据,最后保存为文件
Excel工具函数
为提高代码复用率,整理处理Excel工具函数
- create_excel_workbook():将数据
data
按照指定字段和标签写入一个新的 Excel 工作簿,并设置表头和列宽。 - generate_excel_response():将
workbook
(Excel 工作簿)生成 Excel 文件,并通过 HTTP 响应返回给客户端下载 - process_item():将一个数据项
item
按照指定字段顺序fields
转换为一行数据(列表) - convert_datetime():将带有时区信息的 ISO 格式时间字符串(如
"2023-01-01T12:34:56.789+08:00"
)转换为去除时区、毫秒并替换T
为空格的字符串,输出格式为"YYYY-MM-DD HH:MM:SS"
。
项目实战:Excel文件下载
实战场景:在Django+Vue3后台管理系统中,实现用户的导入导出功能是常见需求。用户导入功能,一般需要先下载模板,填写后再导入。
实战代码:定义视图,将示例数据导出为 Excel 文件并返回给用户下载,实现下载模板功能
实现效果
三、Excel 文件上传
获取上传的文件
当 Django 处理文件上传时,文件数据会被放置在 request.FILES 中。获取上传文件示例
读取Excel中的数据
示例:读取example.xlsx
文件中的标题、单元格等信息
项目实战:Excel文件上传
实战场景:在Django+Vue3后台管理系统中,实现用户导入功能
- 第一步:获取用户上传的文件
- 第二步:调用
get_user_import_data()
函数,读取Excel文件中的用户数据,并将其转换为系统所需格式的字典列表。 - 第三步:使用序列化器,将用户信息保存到数据库
实现效果: 点击查看完整代码
您正在阅读的是《Django从入门到实战》专栏!关注不迷路~