使用Xlsxwriter结合年份季度两个列表生成指定格式Excel行
代码修改方案
现有代码存在两个核心问题:
- 循环内固定写入
A1单元格,所有拼接结果反复覆盖同一位置,最终仅会保留最后一个值"2008 q4" - 逐次写入单元格的方式效率较低,可先生成完整的目标值列表再一次性写入整行
修改后的代码如下:
import xlsxwriter workbook = xlsxwriter.Workbook('template.xlsx') worksheet_data = workbook.add_worksheet("data") # 去掉原列表中冗余的尾部空格,拼接时统一处理格式更可控 year = ["2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008"] quarter = ['q1', 'q2', 'q3', 'q4'] # 列表推导式生成所有符合格式的目标值 target_list = [f"{y} {q}" for y in year for q in quarter] # 从A1单元格开始,把所有值按顺序写入同一行的不同列 worksheet_data.write_row("A1", target_list) workbook.close()
如果实际需求是每个季度值单独占一行(全部放在A列),可以把写入逻辑替换为以下代码:
# 每个值单独占一行的写法 for row_index, value in enumerate(target_list): # 第一个参数是行号,第二个是列号(0对应A列),第三个是写入值 worksheet_data.write(row_index, 0, value)
内容的提问来源于stack exchange,提问作者project.py
相关产品推荐
相关产品推荐

