如何用openpyxl为Excel新增列添加从320开始的递增编号(禁用Pandas)
不用Pandas生成Excel递增客户ID的解决方法
先给你指出你写的代码里的几个问题:
- 变量赋值逻辑完全错误,
[‘A’]=“customer id”没法把表头写入Excel单元格 id=[‘A:A50’]只是定义了一个包含字符串的列表,根本获取不到Excel的单元格范围- 循环嵌套和赋值逻辑混乱,
cell.value.append(i...)的写法完全不符合Excel单元格赋值的逻辑
下面给你用openpyxl库(纯Python操作Excel,不需要Pandas)的正确实现:
步骤1:安装依赖(如果没装过)
pip install openpyxl
步骤2:生成新Excel文件的完整代码
from openpyxl import Workbook # 创建新的Excel工作簿 wb = Workbook() ws = wb.active # 获取默认工作表 # 设置表头 ws['A1'] = "customer id" # 生成从320开始的50个递增ID,写入A2到A51单元格 current_id = 320 for row in range(2, 52): # 行号从2到51,对应50行数据 ws[f'A{row}'] = current_id current_id += 1 # 保存文件 wb.save("客户ID列表.xlsx")
代码说明
- 用
Workbook()创建新工作簿,wb.active拿到默认的工作表 - 直接通过
ws['A1']给表头单元格赋值 - 循环遍历行号2到51,每次把当前ID写入对应A列单元格,写完ID自增1
- 最后用
save()保存成Excel文件
如果是要修改已存在的Excel文件,代码可以改成这样:
from openpyxl import load_workbook # 打开已有的Excel文件 wb = load_workbook("已有文件.xlsx") ws = wb.active # 设置表头(如果需要覆盖原有表头) ws['A1'] = "customer id" current_id = 320 for row in range(2, 52): ws[f'A{row}'] = current_id current_id += 1 wb.save("已有文件_更新后.xlsx")
内容的提问来源于stack exchange,提问作者MatchaColdTea
相关产品推荐
相关产品推荐

