复制所有工作表中的数据,python xlsxwriter

问题描述

我想用输入函数创建表格和多张工作表,但它只将数据放在最后一张工作表中。如何将数据放入每个工作表中,除了第一个称为“描述”工作表。

import xlsxwriter
from xlsxwriter import workbook

workbook = xlsxwriter.Workbook('test.xlsx')

worksheet_description = workbook.add_worksheet( "description" )
sheetnames = input("Enter (sheets) names: ").split(",")
for i in sheetnames:
    worksheet_data = workbook.add_worksheet(i)

worksheet_data.write('A1','Number of table rows')

data = []
year = input("Enter years: ").split(",")
q = ['q1 ','q2 ','q3 ','q4 ']
for x in year:
    for y in q:
        data.append(x + y)
worksheet_data.write_row(0,1,data)

col = input("Numerate columns (enter value): ").split(",")
for i in col:
    worksheet_data.write_column(1,col)
workbook.close()

为什么它不打印所有 worksheet_data 中的输入数据?

解决方法

如果你想在每个工作表上书写,你应该让程序在指定的工作表上工作。在您的代码中,for 循环已经完成,因此程序仅在活动的最后一张纸上打印您的数据。

这是我的脚本,用于在除描述之外的每张纸中打印它。

import xlsxwriter
from xlsxwriter import workbook

workbook = xlsxwriter.Workbook('test.xlsx')

worksheet_description = workbook.add_worksheet( "description" )

sheetnames = input("Enter (sheets) names: ").split(",")
year = input("Enter years: ").split(",")
col = input("Numerate columns (enter value): ").split(",")

for i in sheetnames:    # Loop for each sheet
    worksheet_data = workbook.add_worksheet(i)

    worksheet_data.write('A1','Number of table rows')

    data = []
    q = ['q1 ','q2 ','q3 ','q4 ']
    for x in year:
        for y in q:
            data.append(x + y)
    worksheet_data.write_row(0,1,data)

    for i in col:
        worksheet_data.write_column(1,col)

workbook.close()

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...