Python / Excel:将给定值与求和值进行比较

时间:2016-03-03 05:02:35

标签: python excel if-statement for-loop sum

Excel Image 1

从" Excel Image 1",我将数据拉入A列和B列的python中。目标是对B列的值求和,看它是否高于或低于给定值总和1500.如果它高于或等于1500,那么就不需要做任何事了。但是,如果它更低,那么调整具有单词"更改"的值。在它们旁边,使得计算的总和变为1500或更多。在我们的例子中,总和是700,低于1500。

import xlrd
excel = '/Users/Bob/Desktop/'

wb1 = xlrd.open_workbook(excel + 'assignment2.xlsx')
sh1 = wb1.sheet_by_index(0)

colA,colB = [],[]
for a in range(3,sh1.nrows):
    colA.append(int(sh1.cell(a,0).value))
    colB.append(int(sh1.cell(a,1).value))
print(colA)
print(colB)

excel_sum=(sh1.cell_value(2,1))
print("Given Sum:", excel_sum)

calc_sum = sum(colB)
print(calc_sum)

if calc_sum >= excel_sum:
    print("Good")
#else:
#Need to adjust the values that has the words "change" beside them

当前输出:

[0, 1, 2, 3, 4]
[900, -400, -200, 300, 100]
Given Sum: 1500.0
700

谢谢!

1 个答案:

答案 0 :(得分:0)

你知道delta - excel_sum - calc_sum。因此,扫描C列进行更改,并将其添加到B列。

else:
    for row in range(3, sh1.nrows):
        if sh1.cell(row, 2) == 'change':
            colB[row] = int(sh1.cell(row, 1)) + excel_sum - calc_sum
            break

当然,我看到你使用xlrd而不是xlwt,所以我不知道你将如何改变价值。你呢?