如何使用python从xlsx文件中的另一列中减去一列中的单元格值

我想从一列减去另一列的单元格值,并将总和写入Excel文件中的新列。 然后我想把总和(如果不等于0)加到列表中供以后使用。 我的excel文件中的数据结构如下:

Name | Number | Name1 | Number1 Name2 | Number2 | Name3 | Number3 .... Namex | Numberx | Namey |Numbery 

我想从对方减去数字,然后将总和添加到这样一个新的列:

 Name| Number | Name1 | Number1 | Sum of (Number - Number1) 

我曾尝试使用openpyxl来做到这一点,但是我真的很困惑,因为这些文档与Python的早期版本如此不同以至于更新。 我正在Python 3.4中工作。 我很高兴得到哪些模块,你会推荐我使用的build议。 我到目前为止的代码给了我错误,因为我称之为发电机的excelfile,而不是一个脚本。 我不知道如何search和阅读一个excelfile,同时使其可以下载,以便有可能写入。 任何人都可以帮我吗?

这是我的代码:

 from openpyxl import Workbook, load_workbook def analyzexlsx(filepath): numbers = [] excel_input = load_workbook(filepath) filepath = [pth for pth in Path.cwd().iterdir() if pth.suffix == '.xlsx'] #Want to iterate through several excel files in a folder. ws = excel_input.active cols = tuple(ws.columns) col_b = cols[1] col_e = cols[4] for j, k in zip(col_e, col_b): if None: print('None') equally = (int(j.value) - int(k.value)) #line 13, error. Trying to subtract column cell values. if equally != 0: #If the columns sum is not equal to 0, it is to be added to the numbers list. numbers.append(j.row) else: pass col1 = [] col2 = [] col4 = [] col5 = [] col7 = [] col8 = [] mainlist = [] try: for row in numbers: col1.append(str(ws.cell(row=row, column=1).value)) col2.append(str(ws.cell(row=row, column=2).value)) col4.append(ws.cell(row=row, column=4).value) col5.append(ws.cell(row=row, column=5).value) col7.append(ws.cell(row=row, column=7).value) col8.append(ws.cell(row=row, column=8).value) finally: for i, j, k, l, m, n in zip(col1, col2, col4, col5, col7, col8): mainlist.append(i + ", " + j + ", " + k + ", " + l + ", " + m + ", " + n) return mainlist Traceback (most recent call last): Line 13, in analyzexlsx equally = (int(j.value) - int(k.value)) TypeError: int() argument must be a string or a number, not 'NoneType 

我会很高兴的答复,因为我已经在这个相当长的一段时间,现在我卡住了。 我对Python相当陌生。

首先由read_excel从excel创buildread_excel

然后需要减去2.4列:

 df = pd.read_excel('file.xlsx') #select by column name df['E'] = df['B'] - df['D'] 

 #select by positions, but python count from 0 so for 2. column need 1 df['E'] = df.iloc[:, 1] - df.iloc[:, 3] 

也许还帮助检查文件 。