【问题标题】:Combining two lists to make an Xlsxwriter row组合两个列表以创建 Xlsxwriter 行
【发布时间】:2021-07-25 23:55:09
【问题描述】:

给定两个字符串列表(年份和季度),制作这样的 Excel 行:

"2001 q1", "2001 q2", ..., "2008 q3", "2008 q4"

这是我目前的代码:

import xlsxwriter
from xlsxwriter import workbook

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 ']

for x in year:
    for y in quarter:
        worksheet_data.write_row(
          "A1",       #start cell
          [x + y]
        )

workbook.close()

我需要这个用于客户定制的表格。

有什么想法吗?

【问题讨论】:

    标签: python for-loop xlsxwriter worksheet-function worksheet


    【解决方案1】:

    希望对您有所帮助:

    import xlsxwriter
    from xlsxwriter import Workbook
    
    workbook = xlsxwriter.Workbook('template.xlsx')
    worksheet_data = workbook.add_worksheet("data")
    data = []
    
    year = ["2001 ", "2002 ", "2003 ", "2004 ", "2005 ", "2006 ", "2007 ", "2008 "]
    quarter = ['q1 ', 'q2 ', 'q3 ', 'q4 ']
    
    for x in year:
        for y in quarter:
            data.append(x + y)
    worksheet_data.write_row(0, 0, data)
    workbook.close()
    

    write_row(0, 0, data) 是零索引的,所以这是 A1。

    【讨论】:

      【解决方案2】:

      假设您想将 str(x+y) 写入“A1”,您可能需要像这样格式化您的请求:

      write_row(1, 1, str(x+y))
      

      参考:https://xlsxwriter.readthedocs.io/worksheet.html

      风格方面,我也推荐:

      • 不要将空格放在yearquarter 数组中,而是在使用这些值时添加它们,例如:combined = str(x + " " + y)
      • 循环遍历一个范围而不是手动创建的(连续 + 数字)年份列表:range(2001, 2008+1)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-06-29
        • 1970-01-01
        • 2013-12-28
        • 1970-01-01
        • 2022-12-08
        • 2016-04-28
        • 2017-09-26
        • 2014-01-24
        相关资源
        最近更新 更多