尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

字典列表导出为 Excel

字典列表导出为 Excel
📅 发布时间:2026/7/7 4:55:13

字典列表是业务开发中最常见的数据结构,例如数据库查询结果、API 响应数据等,每条记录以键值对形式存在。

实现思路

  1. 从首条数据提取键名作为表头
  2. 遍历每条字典记录,按键的顺序写入对应列
  3. 支持空值容错处理
  4. 对数值、布尔等特殊字段做类型区分写入

完整代码

from spire.xls import * from spire.xls.common import * def dict_list_to_excel(dict_list, output_path, sheet_name="数据", custom_headers=None): """将字典列表导出为Excel表格""" if not dict_list: raise ValueError("数据列表不能为空") workbook = Workbook() workbook.Worksheets.Clear() sheet = workbook.Worksheets.Add(sheet_name) # 确定表头:优先使用自定义表头,否则使用字典键名 if custom_headers: headers = custom_headers keys = list(dict_list[0].keys()) else: keys = list(dict_list[0].keys()) headers = keys # 写入表头 for col_idx, header in enumerate(headers): cell = sheet.Range[1, col_idx + 1] cell.Value = header cell.Style.Font.IsBold = True cell.Style.HorizontalAlignment = HorizontalAlignType.Center # 写入数据 for row_idx, item in enumerate(dict_list): for col_idx, key in enumerate(keys): cell = sheet.Range[row_idx + 2, col_idx + 1] value = item.get(key, "") # 根据类型智能写入 if value is None: cell.Value = "" elif isinstance(value, bool): cell.BooleanValue = value elif isinstance(value, (int, float)): cell.NumberValue = float(value) else: cell.Value = str(value) # 格式优化 data_range = sheet.Range[1, 1, len(dict_list) + 1, len(headers)] data_range.BorderAround(LineStyleType.Thin) data_range.BorderInside(LineStyleType.Thin) sheet.AllocatedRange.AutoFitColumns() workbook.SaveToFile(output_path, ExcelVersion.Version2016) workbook.Dispose() # 调用示例 if name == "main": orders = [ {"order_id": "ORD2024001", "product": "笔记本支架", "quantity": 2, "price": 89.9, "status": "已发货"}, {"order_id": "ORD2024002", "product": "USB集线器", "quantity": 5, "price": 45.0, "status": "待出库"}, {"order_id": "ORD2024003", "product": "散热底座", "quantity": 1, "price": 129.0, "status": "已签收"}, ] dict_list_to_excel(orders, "orders.xlsx", sheet_name="订单数据")

相关新闻

  • 为什么“双触发器”不够用?
  • Rust 智能指针选型:Box、Rc、Arc 什么时候该用哪一个
  • Copilot上下文感知提醒:基于Graph API的工作流驱动机制

最新新闻

  • 软考中高级备考避坑指南|十四年机构真实通过率与高效上岸方案
  • Linux Shell全面学习实操总结
  • 如何免费高效下载全网音乐:开源工具MusicDownload完整指南
  • Vidu S1:全球领先的实时交互模型
  • 8G显存本地部署AI漫剧生成:从Stable Diffusion到视频合成全流程
  • 后量子密码学:基于Gabidulin码的McEliece加密与量子深度优化

日新闻

  • Android逆向分析全能助手:集成化工具链与自动化工作流设计
  • 面搜索(Faceted Search)原理与工程实践指南
  • 神经网络调参避坑指南:从5个常见Loss曲线形态定位超参数问题

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号