使用openpyxl向指定单元格插入列表失败,求解决方案
解决openpyxl插入列表到指定单元格的问题
你的代码错误在于ws.cell(1,2).append(i)的用法——cell()方法返回的是单个单元格对象,它没有append()方法,append()是工作表(Worksheet)对象的方法,用于给工作表追加整行数据。
根据你想要的插入方式,这里提供三种常见场景的正确实现:
1. 横向插入(从指定单元格开始向右填充)
如果想把列表["John", 1, 2, 3]从B1单元格开始,依次填充到B1、C1、D1、E1,代码如下:
from openpyxl import Workbook wb = Workbook() ws = wb.active l1 = ["John", 1, 2, 3] start_row = 1 start_col = 2 # 对应Excel中的B列 for idx, value in enumerate(l1): ws.cell(row=start_row, column=start_col + idx, value=value) wb.save("tentative.xlsx")
2. 纵向插入(从指定单元格开始向下填充)
如果想把列表从B1单元格开始,依次填充到B1、B2、B3、B4,代码如下:
from openpyxl import Workbook wb = Workbook() ws = wb.active l1 = ["John", 1, 2, 3] start_row = 1 start_col = 2 # 对应Excel中的B列 for idx, value in enumerate(l1): ws.cell(row=start_row + idx, column=start_col, value=value) wb.save("tentative.xlsx")
3. 将整个列表存入单个单元格
如果是想把列表作为整体存入B1单元格(单元格内容显示为["John", 1, 2, 3]),可以把列表转为字符串后赋值:
from openpyxl import Workbook wb = Workbook() ws = wb.active l1 = ["John", 1, 2, 3] ws.cell(row=1, column=2, value=str(l1)) wb.save("tentative.xlsx")
内容的提问来源于stack exchange,提问作者Seb Art
相关产品推荐
相关产品推荐

