You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用xlwt与xlrd实现每5行数据存入一个工作表?

如何修改Python代码实现每5行数据存入一个Excel工作表?

我来帮你搞定这个问题!你现在的代码只能把所有数据都写到Sheet1里,想要实现每5行数据存到一个独立的工作表(每个表都带表头对吧?),其实可以调整得更简洁高效,不用先创建Sheet1再复制修改,直接一次性生成所有需要的工作表就行。

先理清楚核心需求:把14行数据拆分到多个工作表,每个表最多存5行数据,且每个表都要有表头。下面是具体的修改方案:

修改思路

  1. 先把所有要写入的数据整理到一个列表,方便后续按批次拆分
  2. 计算需要的工作表数量:总数据14行,每5行一个表,所以需要3个工作表(5+5+4)
  3. 循环创建每个工作表,先写入表头,再写入对应批次的数据
  4. 最后统一保存整个工作簿,避免反复操作Excel文件带来的冗余和错误

修改后的完整代码

import xlwt
import math

myyear = '2018'
myweek = '10'
mycd='1001'
fileName = myyear + myweek + '.xls'
savePath = r'D:/' + fileName

# 准备所有要写入的数据(和你原数据集一致)
data_list = [[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[8,8],[9,9],[10,10],[11,11],[12,12],[13,13],[14,14]]
# 每个工作表最多存放5行数据
rows_per_sheet = 5
# 计算需要的工作表总数(向上取整,确保所有数据都能放下)
sheet_count = math.ceil(len(data_list) / rows_per_sheet)

# 创建新的工作簿
workbook = xlwt.Workbook(encoding='UTF-8')

# 逐个创建工作表并写入数据
for sheet_idx in range(sheet_count):
    # 给工作表命名:Sheet1、Sheet2、Sheet3...
    sheet_name = f'Sheet{sheet_idx + 1}'
    worksheet = workbook.add_sheet(sheet_name)
    
    # 写入表头(每个工作表都保留相同表头)
    worksheet.write(0, 0, label='year')
    worksheet.write(0, 1, label='week')
    worksheet.write(0, 2, label='CD')
    worksheet.write(0, 3, label='keyword')
    worksheet.write(0, 4, label='importance')
    
    # 获取当前工作表要写入的数据片段(按每5行拆分)
    start_pos = sheet_idx * rows_per_sheet
    end_pos = start_pos + rows_per_sheet
    current_batch_data = data_list[start_pos:end_pos]
    
    # 写入当前批次的数据,从第2行开始(第1行是表头)
    for row_num, (cmp_noun, value) in enumerate(current_batch_data, start=1):
        worksheet.write(row_num, 0, label=myyear)
        worksheet.write(row_num, 1, label=myweek)
        worksheet.write(row_num, 2, label=mycd)
        worksheet.write(row_num, 3, label=cmp_noun)
        worksheet.write(row_num, 4, label=value)

# 保存整个工作簿
workbook.save(savePath)

关键部分说明

  • 工作表数量计算:用math.ceil()向上取整,保证哪怕最后一个工作表不足5行数据,也能单独创建一个表来存放
  • 数据拆分:用列表切片data_list[start_pos:end_pos]快速获取每个工作表对应的数据批次,逻辑清晰易维护
  • 表头写入:每个工作表都会单独写入表头,完全匹配你示例中的格式要求
  • 高效操作文件:全程只创建一次工作簿,最后一次性保存,比你原来先创建再复制修改的方式更高效,也减少了文件读写错误的概率

运行这段代码后,你会得到3个工作表:Sheet1含表头+5行数据,Sheet2含表头+5行数据,Sheet3含表头+4行数据,完美实现你的需求!

内容的提问来源于stack exchange,提问作者user9270170

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:31:18