【问题标题】:Insert data in different sheets in Excel在 Excel 的不同工作表中插入数据
【发布时间】:2020-12-03 22:08:47
【问题描述】:

我想在 Excel 的不同工作表中填写不同的数据。到目前为止,我将所有内容都写在一张纸上。

我希望 for 循环中的每个 i 都有一个不同的工作表(sheet1,sheet2...)

for i in range(1,11):
    for k, v in drd_dictionary.items() :
        if str(i) + "_" in k :
            an.append(k)
            reqs.append(v)
    sheet_number=i
    write_to_excel(an,reqs,str(sheet_number))

def write_to_excel(an,req_text,sheet_number):
    workbook = xlsxwriter.Workbook('path.xlsx')
    worksheet = workbook.add_worksheet()

    worksheet.write_column('A1', an)
    worksheet.write_column('B1', req_text)

    workbook.close()

【问题讨论】:

    标签: python excel


    【解决方案1】:

    看起来您每次迭代都会覆盖工作簿。将工作簿作为参数传递给函数。在循环之前初始化工作簿。

     def write_to_excel(workbook, an,req_text,sheet_number):
        worksheet = workbook.add_worksheet(sheet_number)
        worksheet.write_column('A1', an)
        worksheet.write_column('B1', req_text)
    

    这是完整的工作代码:

    import xlsxwriter
    
    def write_to_excel(workbook, an,req_text,sheet_number):
        worksheet = workbook.add_worksheet(sheet_number)
        for i in range(len(an)):
            worksheet.write(0,i, an[i])
        for j in range(len(req_text)):
            worksheet.write(0,j, req_text[j])
    
    
    drd_dictionary = {"1_": "a", "2_": "2"}
    an,reqs = [],[]
    workbook = xlsxwriter.Workbook("data.xlsx")
    
    for i in range(1,11):
        for k, v in drd_dictionary.items() :
            if str(i) + "_" in k :
                an.append(k)
                reqs.append(v)
        sheet_number=i
        write_to_excel(workbook, an,reqs,str(sheet_number))
    
    workbook.close()
    

    【讨论】:

    • 我试过了,它只创建了第一张纸(编号 1)。我不知道我是不是做错了什么
    • 谢谢。我做错的是我忘记了函数中的 workbook.close()。谢谢!
    猜你喜欢
    • 2012-05-19
    • 2015-04-03
    • 1970-01-01
    • 2012-11-23
    • 1970-01-01
    • 1970-01-01
    • 2017-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多