Ne
V2EX  ›  Python

请教各位 openpyxl 模块怎样方法才能把不同长度的 list 保存 excel

By Ne at 2022 年 9 月 27 日 · 3108 次点击

data1 = [11, 22]

data2 = [33, 44]

data3 = [55, 66, 77, 88]

保存成下面的以列的 excel

xZPovj.png

从网上找了很多资料也没有教,openpyxl 的官网教的全是同长度的。是很少人用这模块吗。

5 条回复    2022-09-29 16:46:07 +08:00
fbichijing
   1
fbichijing  
   2022 年 9 月 27 日   ❤️ 1
Pandas 倒省事一些,openpyxl 思路应该也大同小异吧。

```python
import pandas as pd

data1 = [11, 22]
data2 = [33, 44]
data3 = [55, 66, 77, 88]

df = pd.DataFrame([data1, data2, data3])
df = df.T
df.to_excel('test.xlsx', index=False, header=False)
```
kkeep
   2
kkeep  
   2022 年 9 月 27 日 via Android   ❤️ 1
补位吧
mieq
   3
mieq  
   2022 年 9 月 27 日 via iPhone   ❤️ 1
import openpyxl
import itertools

data1 = [11, 22]
data2 = [33, 44]
data3 = [55, 66, 77, 88]

wb = openpyxl.Workbook()
ws = wb.active

data = itertools.zip_longest(data1, data2, data3)

for row in data:
ws.append(list(row))

wb.save('test.xlsx')
kkbblzq
   4
kkbblzq  
   2022 年 9 月 27 日   ❤️ 1
你行列弄反了吧。。。

from openpyxl import Workbook

if __name__ == "__main__":
data = [
[11,22],
[33,44],
[55,66,77,88]
]

wb = Workbook()
sheet = wb.active
for x in data:
sheet.append(x)
wb.save("test.xlsx")
Ne
   5
Ne  
OP
   2022 年 9 月 29 日 via Android
@mieq 感谢,按你的方法可行。
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
© 2026 V2EX · 34ms · 3.9.8.5