在 excel 文件中写入数字

write numbers in excel file

函数只写最后一个数字 exp: [-big number-, 5, 5, 5, 0.03] 而它应该是这样的 [-big number-, 1, 1, 1, 0.01]。我想是关于这部分的 workbook.save(path) 但我不明白我应该把它放在哪里。

def Calc():  
    global path  
    workbook = openpyxl.load_workbook(path)
    print(workbook.get_sheet_names())
    sheet = workbook.active
    for i in range (0, 4):
        for A in range (1, 6):
            for L in range (1, 6):
                for n in range (1, 6):
                    for T in np.arange (0.01, 0.04, 0.01):
                        K=A*pow((1-math.exp(-L*T)), n)                  
                        c1 = sheet.cell(row = i+10, column = 1)
                        c1.value=K
                        c2 = sheet.cell(row = i+10, column = 2)
                        c2.value=A
                        c3 = sheet.cell(row = i+10, column = 3)
                        c3.value=L
                        c4 = sheet.cell(row = i+10, column = 4)
                        c4.value=n
                        c5 = sheet.cell(row = i+10, column = 5)
                        c5.value=T
                        workbook.save(path)
    #workbook.save(path)                 

我稍微修改了你的代码,所以它可以输出所有行:

from openpyxl import load_workbook
import numpy as np
import math

def Calc():
    path = "./test.xlsx"
    workbook = load_workbook(path)
    print(workbook.get_sheet_names())
    sheet = workbook.active
    # NOTE: change row from 1 to 10
    row = 10
    for i in range (0, 4):
        for A in range (1, 6):
            for L in range (1, 6):
                for n in range (1, 6):
                    for T in np.arange (0.01, 0.04, 0.01):
                        K=A*pow((1-math.exp(-L*T)), n)                  
                        c1 = sheet.cell(row, column = 1)
                        c1.value=K
                        c2 = sheet.cell(row, column = 2)
                        c2.value=A
                        c3 = sheet.cell(row, column = 3)
                        c3.value=L
                        c4 = sheet.cell(row, column = 4)
                        c4.value=n
                        c5 = sheet.cell(row, column = 5)
                        c5.value=T
                        row = row + 1
    workbook.save(path)                 

Calc()