如何使用Django的Tablib模块导入多工作表Excel文件并获取指定工作表
Tablib 读取多工作表 Excel 指定工作表的实现方法
首先确保你已经安装了必要依赖:
pip install tablib openpyxl # 如果需要处理 .xls 格式旧版Excel,额外安装 xlrd pip install xlrd
具体实现步骤如下:
- 第一步:将完整Excel文件加载为
Book对象
Tablib 中Dataset对应单个工作表,多工作表的Excel需要先加载为Book类型的工作簿对象,Django中从上传文件读取的示例代码如下:
import tablib # 从Django上传请求中获取Excel文件 upload_file = request.FILES["upload_excel"] # 加载为工作簿对象,xlsx格式指定format为xlsx,xls格式指定为xls workbook = tablib.import_book(upload_file.read(), format="xlsx")
- 第二步:检索指定工作表,支持三种常用方式
- 按索引取值:工作表索引从0开始计数,示例获取第一个工作表:
first_sheet = workbook.sheets()[0]- 按工作表名称取值:直接用表名作为key获取,是最常用的精准匹配方式:
target_sheet = workbook["你的工作表名称"]- 遍历匹配:如果需要模糊匹配或者批量处理所有工作表,可以遍历全部sheet:
for sheet in workbook.sheets(): # 输出当前工作表名称和数据行数 print(f"表名:{sheet.title},数据量:{sheet.height}") # 自定义匹配规则,比如匹配所有表名带「订单」的工作表 if "订单" in sheet.title: # 后续业务逻辑 process_sheet(sheet)
拿到指定工作表后,返回的对象就是标准的Tablib
Dataset类型,可以直接调用dict、json、yaml等方法转换为对应格式做后续数据处理。
内容的提问来源于stack exchange,提问作者Jaures Simo
相关产品推荐
相关产品推荐

