在 Python 中,将数组(列表、NumPy 数组等)导出为 Excel 文件有多种方法,以下是几种常用且高效的方式,适用于不同场景:
✅ 方法一:使用 pandas(推荐,最常用)
pandas 是处理表格数据最强大的库,支持直接导出为 Excel。
安装依赖
pip install pandas openpyxl
示例代码
import pandas as pd
# 假设你有一个二维数组(列表的列表)
data = [
["姓名", "年龄", "城市"],
["Alice", 25, "北京"],
["Bob", 30, "上海"],
["Charlie", 35, "广州"]
]
# 转换为 DataFrame
df = pd.DataFrame(data[1:], columns=data[0]) # 第一行作为列名
# 导出为 Excel
df.to_excel("output.xlsx", index=False)
print("✅ 文件已导出为 output.xlsx")
💡 如果数据是 NumPy 数组:
import numpy as np import pandas as pd
arr = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
])
直接转换,不设置列名
df = pd.DataFrame(arr)
df.to_excel(“numpy_to_excel.xlsx”, index=False)
---
### ✅ 方法二:使用 `openpyxl`(无需 pandas,轻量级)
适用于不想引入 `pandas` 的场景。
#### 安装依赖
```bash
pip install openpyxl
示例代码
from openpyxl import Workbook
# 数据数组
data = [
["姓名", "年龄", "城市"],
["Alice", 25, "北京"],
["Bob", 30, "上海"]
]
# 创建 workbook 和 worksheet
wb = Workbook()
ws = wb.active= "Sheet1"
# 写入数据
for row in data:
ws.append(row)
# 保存文件
wb.save("output_openpyxl.xlsx")
print("✅ 文件已导出为 output_openpyxl.xlsx")
✅ 方法三:使用 csv + 手动转换(简单但非原生 Excel)
⚠️ 注意:
.csv不是真正的.xlsx格式,但可以用 Excel 打开。
import csv
data = [
["姓名", "年龄", "城市"],
["Alice", 25, "北京"],
["Bob", 30, "上海"]
]
with open("output.csv", "w", newline="", encoding="utf-8-sig") as f:
writer = csv.writer(f)
writer.writerows(data)
print("✅ 文件已导出为 output.csv")
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
pandas
|
功能强大,支持格式、样式 | 依赖较多 | 数据分析、复杂表格 |
openpyxl |
轻量,原生支持 .xlsx |
写入大文件较慢 | 简单表格、无 pandas 环境 |
csv |
最简单,无需额外库 | 非真正 Excel 格式 | 临时数据交换 |
💡 小贴士
- 如果数组很大(如超过 10 万行),建议使用
pandas的to_excel,它优化了写入性能。 - 如需设置样式(字体、颜色、合并单元格等),
openpyxl更灵活。 - 中文乱码问题:使用
encoding="utf-8-sig"或确保 Excel 正确识别编码。
如有具体数据结构或需求(如带表头、多 Sheet、样式等),欢迎提供更多信息,我可以给出更精准的代码!
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/484570.html



