在Python中使用xlsxwriter时出现问题

问题描述 投票:0回答:2

我正在尝试使用 Python 自动在电子表格中输入数据,但遇到了几个问题:

  • 在excel中只能写1
  • 无法正确保存
  • 并且可能使用了错误的库
import xlsxwriter
import openpyxl

workbook = xlsxwriter.Workbook('se.xlsx')
worksheet = workbook.add_worksheet()
valores =[]
entra = 0
while entra != 2:
    Val = input("Favor informar a largura, o comprimento e a espessura o preco do material e tempo de corte em segundo separados por espaços: ") ##please enter the values of width length the thickness the material price per kilo and the cut time
    lst = Val.split()
    print(lst)
    L = int(lst[0])
    C = int(lst[1])
    E = int(lst[2])
    V = (L * C * E * 8) / 1000000
    P = int(lst[3])
    T = int(lst[4])
    Pt = (T * P) / 36
    lst.append(Pt)
    lst.append(V)
    entra = int(input("Digite 2 para fechar ou 1 para adicionar mais elementos: "))
    valores.append[lst]

    lst.clear()
    print(valores)
for row_num, row_data in enumerate(valores):
    for col_num, col_data in enumerate(row_data):
        worksheet.write(row_num, col_num, col_data)


# Salva o arquivo somente quando o loop terminar
workbook.close()

我试图不断输入数据,但我只写一行,它就会覆盖它。

python pandas openpyxl xlsxwriter
2个回答
0
投票

至少有必要:

  • 删除 lst.clear()
  • 将 valores.append[lst] 更改为 valores.append(lst)

0
投票

首先,

valores.append[lst]
中有一个轻微的语法错误,应该是
valores.append(lst)
,因为
valores.append()
是一个函数调用。

您的主要问题发生的原因是

lst.clear()
函数。
lst.clear()
函数会清除列表,同时也会清除您使用
valores.append(lst)
创建的引用该列表的标识符(变量)的内容。基本上
lst
valores
相关联。

这意味着,使用

lst.clear()
,您不仅可以清除
lst
的内容,还可以清除
lst
内部的
valores[0]

为了避免这种情况,您需要重新定义

lst
标识符,使其为空,您可以使用
lst = []
来实现。

长话短说,
你应该使用

lst = []
而不是
lst.clear()

我希望这有帮助

© www.soinside.com 2019 - 2024. All rights reserved.