"不支持的操作数类型/:' NoneType'并且'漂浮' "在openpyxl

时间:2016-08-07 04:20:58

标签: python excel openpyxl

我试图读取Excel文件中的列,并将数据写入Python中相应的文本文件(使用Openpyxl)。 Excel文件中缺少某些数据,如下面的第2列:

" gappy.xlsx":

350.2856445313  -424.5273132324 -322.6161499023
609.8883056641                  -453.6102294922
780.6325683594                  -628.981628418

这是我的代码:

import openpyxl

wb = openpyxl.load_workbook('gappy.xlsx', data_only = True)
ws = wb.active
factor = 1.0

for i in range (1,4):
    with open('text'+str(i)+'.txt', "wt") as file_id:
        for j in range (1,ws.max_row+1):
            file_id.write("{:.3e}\n".format(ws.cell(row = j,column = i).value/factor))

#        I've also tried this, but I cannot write a file separately for each cloumn ... 
#        for column in ws.columns:
#            for cell in column:
#                print(cell.value)
#                file_id.write('%f\n' % (ws.columns[i][0].value))

然后,我收到了这个错误:

  

TypeError:/:' NoneType'不支持的操作数类型并且'浮动'

原因是第二栏中的空白被视为“无”。 我知道读第二列到最后一行+ 1'是错的,但我不知道还能做什么。 请告诉我如何解决这个问题。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

那么你可以在进行除法之前检查两个参数都不是None。如果一个None以任何你想要的方式处理它。

像这样的东西

if ws.cell(row = j,column = i).value is not None and factor is not None:
    file_id.write("{:.3e}\n".format(ws.cell(row = j,column = i).value/factor))
else:
    # handle it in a different fashion